TweetVimからPocketに送りたいなと思うことはある
— ぱせら (@pasela) 2014, 2月 22
呼ばれた気がしたので調査してみる。
認証
function! s:auth() " https://getpocket.com/developer/ から取得 let consumer_key = 'YOUR CONSUMER KEY' " code を取得する let res = webapi#http#post('https://getpocket.com/v3/oauth/request', { \ 'consumer_key' : consumer_key, \ 'redirect_uri' : 'YOUR SITE' \ }) let code = split(res.content, '=')[1] " ブラウザからアプリケーションを認証(許可)する let url = 'https://getpocket.com/auth/authorize?' . \ 'request_token=' . code . \ '&redirect_uri=YOUR SITE' execute 'OpenBrowser ' . url " ブラウザで認証したら Enter let ret = input("please enter key after authorize in browser") " access_token を取得する let res = webapi#http#post('https://getpocket.com/v3/oauth/authorize', { \ 'consumer_key' : consumer_key, \ 'code' : code, \ }) " レスポンスをパース let param = {} for value in split(res.content, '&') let pair = split(value, '=') let param[pair[0]] = pair[1] endfor " アクセストークン echo param.access_token " ユーザ名 echo param.username endfunction call s:auth()
追加してみる
function! s:add() let consumer_key = 'YOUR CONSUMER KEY' let access_token = 'ACCESS TOKEN' echo webapi#http#post('https://getpocket.com/v3/add', { \ 'url' : 'https://github.com/basyura/TweetVim', \ 'consumer_key' : consumer_key, \ 'access_token' : access_token, \ }) endfunction call s:add()
まとめ
CONSUMER KEY を基本的に各自に用意してもらうという方針にすれば割と楽にいけそう。
これなら pocket.vim つくっちゃおうかなぁと思ったらすでにあったわーわーわー 。
とはいえ、ちまちまやってみるか・・・な?
いつか何かを作るために勉強するよりも、最初に作りたい目的があると捗るので作りたい物ドリブンでいろいろ手を動かしたいと思い直した今日このごろ。