我正在为 twitter oauth 尝试以下示例应用程序。
http://www.androidsdkforum.com/android-sdk-development/3-oauth-twitter.html
private void askOAuth() {
try {
consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
provider = new DefaultOAuthProvider("http://twitter.com/oauth/request_token",
"http://twitter.com/oauth/access_token",
"http://twitter.com/oauth/authorize");
String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
} catch (Exception e) {
Log.e(APP, e.getMessage());
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
当我运行下面的代码时,它给出如下异常
“oauth.signpost.exception.OAuthNotAuthorizedException:授权失败(服务器回复 401)。如果消费者 key 不正确或签名不匹配,就会发生这种情况。”
在这一行 String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
我提供了正确的“ key ”和“ secret ” twitter 是否给我错误的 key 和 secret ?
最佳答案
我在这上面花了好几个小时。似乎您必须在 Twitter 应用程序开发人员面板的“设置”选项卡中为回调 url 设置任何值。保留默认的空值会禁用动态回调 url。
我在网上找到的所有教程和所有信息都是无效的。 Twitter 早就删除了“客户端/网站”单选按钮。
此外,OAuth 会检查时钟偏差。
关于android twitter retrieveRequestToken 401请求 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315669/