Twitter回调url在android中不起作用

时间:2012-07-10 11:42:05

标签: android callback twitter

现在我尝试使用 twitter4j 库在Android中实现Twitter集成。几个月前我使用虚拟回调URL成功实现了这一点,例如“ PicPuzzle:// tkxel

但是现在Twitter改变了它的方案,现在不允许用虚拟URL创建应用程序。

现在问题是在身份验证之后它重定向到callbackurl但是没有返回应用程序。

我在应用程序和注册页面中指定了相同的URL。我提到了Problem in Callback in Twitter in AndroidHow I can call back in Android using OAuth for Twitter?。但是这些解决方案现在无法正常工作,因为现在twitter不允许使用虚拟URL创建应用程序。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

  1. 创建您自己的WebViewClient子类。
  2. 覆盖shouldOverrideUrlLoading(WebView视图,字符串网址)方法。
  3. 在shouldOverrideUrlLoading()中,检查url.startsWith(YOUR_CALLBACK_URL)是否为真。
  4. 如果为true,则从URL检索“oauth_verifier”参数并返回true(来自shouldOverrideUrlLoading()的true可阻止WebView实例加载URL)。
  5. 使用步骤4中获取的参数值获取访问令牌。
  6. 您的应用程序可以在步骤4之后从WebView实例获得控制权。

    如果上述步骤听起来很麻烦,请尝试TwitterOAuthView。它的用法非常简单。只需致电

    view.start(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL, true, listener);
    

    并通过下面定义的TwitterOAuthView.Listener接口接收结果。

    void onSuccess(TwitterOAuthView view, AccessToken accessToken);
    void onFailure(TwitterOAuthView view, TwitterOAuthView.Result result);
    

    如果将TwitterOAuthView.start()方法作为第四个参数赋予true,则TwitterOAuthView不会访问回调URL,我认为此行为是您要实现的。源代码TwitterOAuthView.java可能会有所帮助。

答案 1 :(得分:0)

请按照以下步骤操作:

  1. 转到Twitter应用:https://apps.twitter.com/

  2. 然后,转到您的应用。

  3. 转到“设置”标签

  4. 在“回调URL”部分中,添加以下行:

  

twittersdk://

  1. 单击底部的“更新设置”按钮。就是这样。

希望这行得通!