我已经在Twitter开发者网站上注册了我的应用程序,并获得了一些OAuth凭据(消费者密钥,消费者密钥,请求令牌URL等)。我已经将回调网址留空了.App是为IOS和Android.Without开发的回调网址应用程序在IOS中工作,但在android中没有工作。我试过
requestToken = twitter
.getOAuthRequestToken(Constants.TWITTER_CALLBACK_URL);
我得到了例外
02-28 10:52:27.337:W / System.err(666):401:身份验证凭据 (https://dev.twitter.com/pages/auth)遗失或不正确。确保 你已经设置了有效的消费者密钥/秘密,访问令牌/秘密,和 系统时钟同步。 02-28 10:52:27.337:W / System.err(666): 02-28 10:52:27.337: W / System.err(666):02-28 10:52:27.337:W / System.err(666):
/ oauth / request_token 02-28 10:52:27.337: W / System.err(666):桌面应用程序仅支持 oauth_callback value'oob'
然后我尝试了没有回调网址
requestToken = twitter
.getOAuthRequestToken();
当我尝试登录时,我被重定向到一个页面(仍然在网络活动中),祝贺我已经授予我的应用程序访问我的Twitter帐户并给我一个引脚进入需要的地方,而不是重定向到我的应用
如何在Android中没有回拨网址的情况下登录Twitter? 提前谢谢。
答案 0 :(得分:0)
2.Override shouldOverrideUrlLoading(WebView view,String url)方法。
3.在shouldOverrideUrlLoading()中,检查url.startsWith(YOUR_CALLBACK_URL)是否为真。
4.如果是,请从URL中检索“oauth_verifier”参数并返回true(来自shouldOverrideUrlLoading()的true会阻止WebView实例加载URL)。
使用步骤4中获取的参数值获取访问令牌。 在步骤4之后,您的应用程序可以从WebView实例获得控制权。
如果上述步骤听起来很麻烦,请尝试使用TwitterOAuthView。它的用法非常简单。只需致电
view.start(CONSUMER_KEY,CONSUMER_SECRET,CALLBACK_URL,true,listener); 并通过下面定义的TwitterOAuthView.Listener接口接收结果。
void onSuccess(TwitterOAuthView视图,AccessToken accessToken); void onFailure(TwitterOAuthView视图,TwitterOAuthView.Result结果); 如果将true作为第四个参数提供给TwitterOAuthView.start()方法,则TwitterOAuthView不会访问回调URL,我认为这种行为是您想要实现的。源代码TwitterOAuthView.java可能会有所帮助。