はじめに
初めてAPIを叩いたので個人的備忘録として残します。
今回はデータ取得までしか行っていませんが、いずれは色々とやってみたいです。
アクセストークンの取得
QiitaのAPIを使うために、アクセストークンを取得します。
アクセストークンとは、API利用者かどうか判断するライセンスのようなもの。
発行方法ですが、まずはQiitaの自分のページにアクセスし、
上記画面の設定から、設定画面に行き、
アプリケーションをクリック
私はもう発行していますが、個人用アクセストークンのところからアクセストークンを発行する。
ランダムな英数字の列が表示されるので、必ずメモしておいてください
コマンドラインで動作確認
コマンドライン上でcurlコマンドを使ってまずは取得できるかを確認します。
curl -s -H "Authorization: Bearer <先ほどのアクセストークンの値>" https://qiita.com/api/v2/authenticated_user/items
- -s : 進捗状況を表示しない(サイレントモード)
- -H : リクエストヘッダーを指定する
C:\>curl -s -H "Authorization: Bearer <アクセストークンの値>" https://qiita.com/api/v2/authenticated_user/items
[{"rendered_body":"\n\u003ch2\u003e\n\u003cspan id=\"はじめに\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003eはじめに\u003c/h2\u003e\n\n\u003cp\u003e個人的備忘録として発信しています。\u003c/p\u003e\n\n\u003ch2\u003e\n\u003cspan id=\"起きたこ と\" class=\"fragment\"\u003e\u003c/span\u003e\u003ca href=\"#%E8%B5%B7%E3%81%8D%E3%81%9F%E3%81%93%E3%81%A8\"\u003e\u003ci class=\"fa fa-link\"\u003e\u003c/i\u003e\u003c/a\u003e起きたこと\u003c/h2\u003e\n\n\u003cp\u003eリモートリポジトリにp・・・
長いので省略。。ですが、取れていそうです。
Pythonで実装する
コマンドベースでは出来たので、これをpython経由で実行します。
調べているとcurlコマンドをpythonに変換してくれる神ツールを見つけたのでこれをベースにしています。
(あれ、私実装っぽいこと何もしていない。。)
変換したものを少し直して、次のようになりました。
import requests
import json
import pprint
URL = "https://qiita.com/api/v2/items"
TOKEN = "<アクセストークンの値>"
HEADER = {
'Authorization': 'Bearer {}'.format(TOKEN),
}
response = requests.get(URL, headers=HEADER)
pprint.pprint(response.json())
pprintを使って、少しきれいにしています
実行してみると
・・・
'title': '[Serverless Framework] yarn workspaceを使ったmonorepo',
'updated_at': '2020-12-28T19:26:14+09:00',
'url': 'https://qiita.com/allJokin/items/9316e5384a3bf7a4536b',
'user': {'description': None,
'facebook_id': None,
'followees_count': 0,
'followers_count': 0,
'github_login_name': 'allJokin',
'id': 'allJokin',
'items_count': 1,
'linkedin_id': None,
'location': None,
'name': '',
'organization': None,
'permanent_id': 600358,
'profile_image_url': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/600358/8d5eba69a13ba6bef9ae50d23c9a1fa3e87b60ae/large.png?1607605958',
'team_only': False,
'twitter_screen_name': 'AllJokin',
'website_url': None}}]
・・・
取れていそうです!!
補足
python 3.8.0
requests 2.25.1
感想
APIの仕様書が全然理解できず、記事情報全部持ってくることしかできませんでした。。
更に読み込んで、使いこなせるようになりたいです。
あと、今回はハードコーディングしていますが、config管理するなども考えていきたいです。
次はAmazonのAPIに挑戦するつもりです。