[2016.08Ver]Misskey APIの叩き方
投稿: カテゴリー: Misskey今日はMisskey APIの叩き方を紹介します。
1.コンフィグを取得する
音船氏が管理しているMisskeyのFork(https://github.com/sagume)なら/publicconfig.jsonにアクセスすれば取得できます。
それ以外の場合はトップにアクセスして以下の部分をスクレイピングしてJSONをパースしましょう。

これが今後重要です。
2.CSRFトークンを取得する
CSRFトークンは以下の部分にあります。正規表現かなにかで取得しましょう。
正規表現の例:<meta name=”csrf-token” content=”([A-Za-z0-9\-_]+)”>

ちなみに:この時に降ってくるCookieも取得してください。

3.ログインする
先ほどのCSRFトークンをHTTPヘッダーに
csrf-token: hogehoge-hogehoge
のような形で付けて、ついでにクッキーも付けて、
- POSTリクエストでbodyに付ける
- GETリクエストでqueryに付ける(e.g. ?screen-name=hoge&password=hage)
のいずれかで先ほどのコンフィグのsigninUrlのURLにスクリーンネームとパスワードをscreen-nameとpasswordの名前でリクエストしてください。
間違っててもこの時点ではおそらくわかりません。
4.APIを叩く
さていよいよAPIです。
先ほどと同じようにcsrf-tokenとクッキーを付けて先ほどのコンフィグのwebApiUrl+エンドポイント(https://github.com/MissKernel/Misskey-API/blob/master/src/endpoints.ts を見ればわかる)に必ずPOSTリクエストで送信します。
ちなみにapplication/x-www-form-urlencoded以外のフォーマットでのPOSTはできません。
ここでaccount/showを叩くとログインできたか確認できます。
5.おまけ 画像について
画像を使う場合はalbum/files/uploadにアップロードすればいいと思うかもしれませんが違います。 web/album/uploadにアップロードしてください。名前はfileです。(アップロードするときのみmultipart/form-dataが利用できます。)
他にもWeb独自のAPIとかがあるのでhttps://github.com/MissKernel/Misskey-Web/blob/master/src/api/router.ts も見ることを推奨します。
6.おまけ Pythonで書く人へ
https://github.com/Petitsurume/Misq/blob/develop/src/misskey.py
これ便利だよ!!!(宣伝)