2

我正在创建一个 android 应用程序,我必须在其中集成 twitter 以使用 twitter4j 库在其上上传图片。

我无法在 Twitter 上为应用程序指定回调 URL。

请帮我。

4

1 回答 1

1

在 twitter 的情况下,您应该使用意图过滤器来获取回调

requestToken = twitterFactory.getInstance()
                    .getOAuthRequestToken("oauth://com.example.twitter"); //note that "oauth" is your scheme name, "com.example.twitter" is your host name  on your intent-filter

在授权后您想要回调的活动中添加以下意图过滤器

<activity android:name=".TwitterActivity"
              android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="oauth" android:host="com.example.twitter"  />
    </intent-filter>
</activity>

在您想要回调的活动中(在本例中为 TwitterActivity)让您的验证者为

Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith("oauth://com.example.twitter")) {
    String verifier = uri.getQueryParameter("oauth_verifier");
    // request for access token using requestToken and verifier which are used to login second time
}

这里需要注意的重要一点是

-> 首先你通过调用 web api 请求请求令牌

-> 该请求令牌可用于授权您的用户

-> 授权后,您的浏览器加载某些可以启动您的活动的 URL,因为您已使用相应的主机名和方案名称(即 host =“oauth”,scheme="com.example.twitter")将意图过滤器添加到您的活动中

-> 您可以让您从加载的 Url 访问令牌,即从中提取验证器并使用您的请求令牌

详细代码请访问https://bitbucket.org/hintdesk/android-how-to-tweet-in-twitter-within-android-client/src/f8923a4a641313cae7243da51530b472730c2439?at=default

于 2015-03-01T14:34:31.987 回答