Android应用程序中的Twitter集成

时间:2013-02-28 05:49:58

标签: android twitter4j

我已经在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? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 创建您自己的WebViewClient子类。
  2. 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可能会有所帮助。