Jan*_* S. 13
是的,文档不是那么好.您应该首先阅读OAuth.Twitter有一个很好的概述.
首先,您需要一个消费者密钥和秘密(您可以通过在tumblr中注册您的应用程序来获取这些密钥).之后,您应该使用Tumblr提供的auth URL来获取用户的授权.通常,您将生成一个请求URL,您可以从中将用户带到他/她将登录并授权您的应用程序的浏览器.这将触发对您的应用程序的回调,您将能够获得oAuth令牌.将其保存在您的应用程序(SharedPreferences)中,这样您就不需要再次要求用户进行身份验证.使用此令牌,您将能够与需要身份验证的Tumblr API进行交互.
请注意,您还可以实现webview,而不是让用户使用浏览器.但是,这需要更多的工作.
我发现最新的路标库与Tumblr不兼容.你需要一些旧版本.前往这里并下载这些文件:
将两个库导入项目.要使用它们,基本上您需要调用以下代码:
CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY,
CONSUMER_SECRET);
CommonsHttpOAuthProvider provider = new CommonsHttpOAuthProvider(
REQUEST_TOKEN_URL,
ACCESS_TOKEN_URL,
AUTH_URL);
String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
Run Code Online (Sandbox Code Playgroud)
CALLBACK_URL可能是这样的:"tumblrapp://tumblrapp.com/ok".无需在Tumblr设置上设置回调URL.
此外,您还需要设置一个意图过滤器,以便在授权后调用您的应用.确保你的Manifest看起来像这样:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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="tumblrapp"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
现在,在身份验证后,您可以获得这样的令牌:
Uri uri = this.getIntent().getData();
if (uri != null) {
String token = uri.getQueryParameter("oauth_token");
}
Run Code Online (Sandbox Code Playgroud)
我做了一个快速的示例应用程序 你可以在这里查看.您可能希望将请求移动到后台线程,因为它会阻止UI.
| 归档时间: |
|
| 查看次数: |
2951 次 |
| 最近记录: |