0

现在,我尝试使用twitter4j库在 android 中实现 Twitter 集成。几个月前,我使用像“ PicPuzzle://tkxel ”这样的虚拟回调 url 成功实现了这一点。

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

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

我在申请和注册页面中指定了相同的 url。我提到了 Android 中 Twitter 回调中的问题以及如何使用 OAuth for Twitter 在 Android 中回调?. 但是这些解决方案现在不起作用,因为现在 twitter 不允许使用虚拟 URL 创建应用程序。请帮我解决这个问题。

4

2 回答 2

1

请按照以下步骤操作:

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

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

  3. 转到设置选项卡

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

twittersdk://

  1. 单击底部的“更新设置”按钮。而已。

希望这有效!

于 2018-06-22T13:33:26.787 回答
0
  1. 创建您自己的 WebViewClient 子类。
  2. 覆盖 shouldOverrideUrlLoading(WebView view, String url) 方法。
  3. 在 shouldOverrideUrlLoading() 中,检查 url.startsWith(YOUR_CALLBACK_URL) 是否为真。
  4. 如果为 true,则从 URL 中检索“oauth_verifier”参数并返回 true(来自 shouldOverrideUrlLoading() 的 true 会阻止 WebView 实例加载 URL)。
  5. 使用步骤 4 中获取的参数值获取访问令牌。

在第 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);

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

于 2012-07-18T19:24:25.423 回答