まずはアプリケーション登録をする
記事が読めればいいので,permissionsはRetrieve
にした.登録すると,CONSUMER KEY
が入手できる.
$ curl -H "Content-Type: application/json; charset=UTF-8" -X POST \ https://getpocket.com/v3/oauth/request \ -d ' { "consumer_key" : "XXXX-XXXXXXXXXXXXXXXXXXXXXXXX", "redirect_uri":"http://matoken.org/" } '
結果
code=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXX
ウェブブラウザで 'https://getpocket.com/auth/authorize?request_token=<REQUESTTOKEN>&redirecturi=http://matoken.org/' にアクセスしてアカウントにリクエストを許可する.urlは適当.
$ curl -H "Content-Type: application/json; charset=UTF-8" -X POST \ https://getpocket.com/v3/oauth/authorize \ -d ' { "consumer_key":"<CONSUMER_KEY>", "code":"<REQUEST_TOKEN>" } '
結果
access_token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXX&username=user%40example.com
application/json で求める.とりあえず1件だけ(“count”:“1”)
$ curl -H "Content-Type: application/json; charset=UTF-8" -X POST \ https://getpocket.com/v3/get -d ' { "consumer_key":"<CONSIMMER_KEY>", "access_token":"<ACCESS_TOKEN>", "count":1 } ' | jq { "status": 1, "complete": 1, "list": { "2692971736": { "item_id": "2692971736", "resolved_id": "2692971736", "given_url": "https://www.patreon.com/posts/29180933", "given_title": "DUVET | 1041uuu on Patreon", "favorite": "0", "status": "0", "time_added": "1565885008", "time_updated": "1565885011", "time_read": "0", "time_favorited": "0", "sort_id": 0, "resolved_title": "", "resolved_url": "https://www.patreon.com/posts/29180933", "excerpt": "", "is_article": "0", "is_index": "0", "has_video": "0", "has_image": "0", "word_count": "0", "lang": "", "domain_metadata": { "name": "Patreon", "logo": "https://logo.clearbit.com/patreon.com?size=800", "greyscale_logo": "https://logo.clearbit.com/patreon.com?size=800&greyscale=true" }, "listen_duration_estimate": 0 } }, "error": null, "search_meta": { "search_type": "normal" }, "since": 1565886741 }
application/x-www-form-urlencoded で求める
$ curl -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -X POST https://getpocket.com/v3/get -d \ "consumer_key=<CONSUMER_KEY>&access_token=<ACCES_TOKEN>&state=all&sort=oldest&detailType=symple&since=`date -d'1days ago' +%s`" | jq .
date -d'1days ago' +%s
: 指定したUNIX Time以降の記事を取得.取得する開始UNIX TimeをGNU coreutilsのdate commandで過去1日(-d'1days ago')時点のUNIX Time(+%s)を取得して指定$ sudo -u www-data crontab -l | grep wiki 0 0 1 * * mkdir -p /var/lib/dokuwiki/farm/wiki.matoken.org/data/pages/memo/`date +\%Y/\%m` 1 0 * * * curl -s -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -X POST https://getpocket.com/v3/get -d "consumer_key=<SOCTOMER_KEY>&access_token=<ACCESS_TOKEN>&state=all&sort=oldest&detailType=simple&since=`date -d'1days ago' +\%s`" | jq -r '.list[] | [.given_title,.given_url] | @csv' | sed -e 's/^"/* [/' | sed -e 's/","/](/' | sed -e 's/"$/)/' | sed -e 's/^\[]/\[null]/' | sed '1s/^/\n/' >> /var/lib/dokuwiki/farm/wiki.matoken.org/data/pages/memo/2019/08/`date +\%F`.txt
1行目
0 0 1 * *
: 毎月1日の00:00に実行mkdir -p /var/lib/dokuwiki/farm/wiki.matoken.org/data/pages/memo/
date +\%Y/\%m`` : 月のディレクトリを掘る1 0 * * *
: 毎日 00:01 に実行2行目
jq -r '.list[] | [.given_title,.given_url] | @csv'
: pocketからの結果からtitleとurlを抜き出してcsv形式で出力sed -e 's/^"/* [/' | sed -e 's/","/](/' | sed -e 's/"$/)/' | sed -e 's/^\[]/\[null]/'
: markdownのリンクに変換sed '1s/^/\n/'
: 先頭行を空けないとmarkdownを認識しないようなので改行を入れる/var/lib/dokuwiki/farm/wiki.matoken.org/data/pages/memo/2019/08/
date +\%F.txt
: 保存先,memo:2019:08:2019-08-16になる+\%Y/%m/%F
に差し替える明日動けば成功
コメント