https://getpocket.com/developer/docs/authentication
上面的链接是官方文档,写的很详细了,这里做下简要记录,作为官方文档的辅助参考。
Step 1 获取consumer key
通过http://getpocket.com/developer/apps/new 创建一个应用,获取consumer key。比如:1234-abcd1234abcd1234abcd1234
Step 2 获取request token
通过post请求,获取request token,请求的content type可以是x-www-form-urlencoded或者json,参考官网示例。
Method URL:
https://getpocket.com/v3/oauth/request
参数 | 类型 | 说明 |
---|---|---|
consumer_key | String | 第一步时拿到的 |
redirect_uri | String | 第四步时需要用到,为"pocketapp"+consumer key开头部分数字"+":authorizationFinished",比如你的consumer key是1234-abcd1234abcd1234abcd1234,这里可以填pocketapp1234:authorizationFinished |
state | String | 上面两个参数是必填,这个是可选参数,如果填了,在后续的授权中都会返回这个字符串,即作为meta data使用,没需求可不填 |
请求成功后会返回request token。贴个官方的示例:
上面的code就是request token。
Step 3 引导用户到pocket 网页上授权
可以使用自带浏览器(Intent方式)或者Webview打开下面的地址,让用户授权。
https://getpocket.com/auth/authorize?request_token=YOUR_REQUEST_TOKEN&redirect_uri=YOUR_REDIRECT_URI
这里的request_token是在Step 2时拿到的code。
Step 4 获取授权成功的通知
授权成功后,用户点击页面上的返回应用程序,浏览器会打开你之前填的redirect_uri,如:pocketapp1234:authorizationFinished。为了响应这个操作,你用于管理授权的Activity需要注册对应的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="pocketapp1234" />
</intent-filter>
android:scheme要改成你自己的。
Step 5 获取 access token
现在你可以使用step 1时拿到的consumer key和step 2时拿到的request token 去得到access token。Access token是真正用来获取用户资源的token。通过post请求,并带上consumer_key和code参数获取access token
Method URL:
https://getpocket.com/v3/oauth/authorize
参数 | 类型 | 说明 |
---|---|---|
consumer_key | String | Step 1时拿到的 |
code | String | Step 2时拿到的request token |
附上官方的示例: