ScrapboxのprivateプロジェクトのAPIを叩く
privateプロジェクトに限らないので整理したい
だがあちこちからリンクされているので、このページは存続させることにした(2023-08-09)
2018-12-17
publicプロジェクトのAPIは単純にGETすればデータが得られるが、privateプロジェクトでそれをやると401になる。(当たり前)
ログイン状態でprivateプロジェクトにアクセスすると、クッキーに認証情報がセットされる。これを使う。
>To prevent cross-site scripting (XSS) attacks, HttpOnly cookies are inaccessible to JavaScript's Document.cookie API
Chrome Devtoolsだとここで見れる。
具体的には"connect.sid"という名前で認証情報が入っている。これを例えば
requestsに渡せば良い。
pythoncookies={"connect.sid": "..."}
r = requests.get("https://scrapbox.io/api/pages/...", cookies=cookies)
このconnect.sidは2018年の今時点で2020年までexpiresしないやつなので当面アクセスできる。
もしうっかりこの情報を漏らしてしまった場合にリセットする方法があるかどうかは知らないので気をつける必要がある。
ログアウトしてログインし直したら変わってた
thanks moriyoshi