-
Notifications
You must be signed in to change notification settings - Fork 2
「info.json」ファイルの仕様2ー1 「アクセス・トークンのリクエスト」
KEINOS edited this page Jul 8, 2018
·
2 revisions
Qithub コマンドでは、コマンドのプログラム内でアクセス・トークンをハードコーディングする(ソース内に含める)ことを禁止しています。
そのため、コマンドが特定 Web API のサービスを利用したい場合は、"require
" の "access_token
" 要素内に配列で指定します。
"access_token
"の各要素(各リクエスト要素)に含める項目は以下の通りです。
Key名 | 型 | 概要 | 備考 |
---|---|---|---|
service |
String | サービス名 | 必須。 ユーザにわかりやすい記載にしてください。 |
scheme |
String | URL スキーム |
必須ではありませんが、サービスによって知る必要がある場合には記載してください。http https ftp など。 |
host |
String | 利用するサービスのホスト名 | 必須。 サービスによって複数ホストがあるため。 |
scopes |
String | 利用するサービスの最低限のスコープ | 必須。read write follow repo など、スペース区切りでコマンドが利用したい範囲を明記してください。スコープの値はサービスに合わせてください。大は小を兼ねさせず、コマンドの利用者のためにも必要以上のスコープは指定しないようにしてください。 |
callback |
String | 引数に含める際のキー名 | 必須。 この値をキー名にしてコマンドの引数にアクセストークンが含まれて渡されます。 |
例えば、Mastodon と GitHub の API を利用するためにアクセス・トークンをリクエストしたい場合は、以下のような info.json
の内容になります。
{
"require": {
"access_token": [
{
"service": "mastodon",
"scheme": "https",
"host": "qiitadon.com",
"scopes": "read follow",
"callback": "access_token_mastodon"
},
{
"service": "github",
"scheme": "https",
"host": "github.com",
"scopes": "read",
"callback": "access_token_github"
}
]
}
}
上記リクエストをinfo.json
で指定した場合、実行時にコマンドが受け取る引数(Qithub エンコード・データ)は以下のようになります。
%7B%22name_script%22%3A%22YourScript%22%2C%22args%22%3A%22xxxxxx%22%2C%22access_token_mastodon%22%3A%22yyyyyyyyyyy...%22%2C%22access_token_github%22%3A%22zzzzzzzzzzz...%22%7D
受け取ったデータをデコード(URLデコード)した JSON データは以下のようになります。あとは、これらの値を使って各自の処理を行い、結果を出力します。
{
"name_script": "YourScript",
"args": "xxxxxx",
"access_token_mastodon": "yyyyyyyyyyy...",
"access_token_github": "zzzzzzzzzzz..."
}
リクエストによって得たアクセス・トークンの取り扱いに関しては1点の禁止次項を除き、特に定められていませんが、推奨している事項はあります。
- 取得したアクセス・トークンをコマンドのディレクトリ以外に保存することを禁止します。(外部のサイト、サービス、クラウドなどへの保存もNGです)
- 都度、リクエストするものとし、コマンド内部で保存しない
- コマンドの性質上、アクセス・トークンの保存が必要な場合はプレーンな状態で保存しない
- アクセス・トークンが保存される場合は、ユーザーにその旨を明示する。README ファイルやヘルプに記載するなど。
▶︎ 『他コマンドの実行リクエスト』
[トップ] [目次の並び順を変更する]