やりたいこと
Pocketでアクセストークンを取得する方法です。
概要
ドキュメントにはOAuth 2.0となっていますが、OAuth 2.0とはフローが違う気がします。。。
- アプリケーションを登録して、consumer keyを取得
- リクエストトークンを取得
- リクエストトークン = OAuth 2.0における認可コードと同じです。
- ユーザに認可を求める
- リクエストトークンをアクセストークンに変換
手順
アプリケーションの作成
- Pocket: Developer API
- CREATE AN APPLICATIONをクリック
- 項目を入力
- Application Name: アプリケーション名
- Application Description: アプリケーションの説明
- Permissions: パーミッション
- Add: 項目の追加
- Modify: 項目の編集
- Retrieve: アイテムの取得
- Platforms: プラットフォーム
- I accept the Term of Serviceにチェック
- 全て入力したらCREATE APPLICATIONのボタンの色が変わるので、クリックする。
アプリケーションのconsumer keyを保存しておく。
認証
Pocket Developer Program: Pocket Authentication API: Documentation
以下のコマンドを実行する。
curl -X POST -F "consumer_key=コンシューマキー" -F "redirect_uri=リダイレクトURL" https://getpocket.com/v3/oauth/request | cut -d '=' -f 2
code=xxxxx
という文字列(認可コード)が返ってくる
次に、以下のURLにブラウザでアクセスする。
https://getpocket.com/auth/authorize?request_token=認可コード&redirect_uri=リダイレクトURL
認可を求められるので、「認可」ボタンをクリックする。 完了すると、リダイレクトURLにリダイレクトする。
次に、以下のコマンドを打つ。
curl -X POST -F "consumer_key=コンシューマキー" -F "code=認可コード" https://getpocket.com/v3/oauth/authorize
アクセストークンが取得できる。