0時に寝て6時に起きた。

backlog の oauth 2.0 の仕組み

ユーザー単位の API キーの他、oauth 2.0 の認可の仕組みもある。OAuth Grant Types は Authorization Code と Refresh Token の2つをサポートしている。

手順はざっくりこんな感じ。

開発者向けのサイトからアプリケーションを作成して認可コードのリクエストを送る。

https://YOUR-SPACE.backlog.com/OAuth2AccessRequest.action?response_type=code&client_id=xxx&redirect_uri=http://localhost:18080/callback

リダイレクト先に query='code=zzz' な認可コードが届く。それを使ってアクセストークンを取得する。

{'access_token': 'xxx',
 'expires_in': 3599,
 'refresh_token': 'xxx',
 'token_type': 'Bearer'}

有効期限が1時間のアクセストークンを取得できる。次のようにして認証をパスできる。

$ curl -s -H "Authorization: Bearer xxx" 'https://YOUR-SPACE.backlog.com/api/v2/space' 

基本的にはユーザー単位の認証しかなくてアプリケーションアカウントの運用はできないみたい。backlog の課金プランをみると、基本的にはユーザー無制限っぽいのでアプリケーションアカウントを一般ユーザーで作成すれば、運用上問題にならないからアプリケーションアカウントを設けていないのではないかと思う。お手伝い先の管理者にインテグレーション向けの専用ユーザーを作成して API キーを github の secrets に登録してほしいという依頼を出した。