Twitter 的回调 URL

发布于 2024-12-01 15:07:21 字数 118 浏览 2 评论 0原文

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

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

请帮我。

I am creating an android application in which I have to integrate twitter for uploading picture on it using twitter4j library.

I am not able to specify callback Url on twitter for application.

Please help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云裳 2024-12-08 15:07:21

在 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,该 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

You should use intent filters to get callback in case of twitter as

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

To the activity where you want to get you callback after authorization add following 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>

And in your Activity where you want to get callback to (in this case TwitterActivity) get your verifier as

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
}

Here important thing to notice is

-> first of all you ask for request token by calling web api

-> that request token can used to authorize your user

-> after authorization you browser loads certain Url which can start your activity as you have added intent-filter to your activity with corresponding host name and scheme name (i.e. host = "oauth", scheme="com.example.twitter")

-> you can get you access tokens from the loaded Url i.e. extracting verifier from it and using your request token

for detail code please visit https://bitbucket.org/hintdesk/android-how-to-tweet-in-twitter-within-android-client/src/f8923a4a641313cae7243da51530b472730c2439?at=default

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文