我正在创建一个 android 应用程序,我必须在其中集成 twitter 以使用 twitter4j 库在其上上传图片。
我无法在 Twitter 上为应用程序指定回调 URL。
请帮我。
在 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 访问令牌,即从中提取验证器并使用您的请求令牌