-
Notifications
You must be signed in to change notification settings - Fork 2
アクセストークンについて
https://qithub.tk/
のサーバーには、Qiita や Qiitadon など、各種サービスのアクセス・トークンを取得するためのシェル・コマンドが用意されています。
このコマンドで取得できるアクセス・トークンは、Qithub サークル専用のアカウントで取得した共通のアクセス・トークンです。
事前に Issue を立てて申請すると、自作スクリプトの設置先から以下のコマンドをローカル・アクセスで外部コマンドとして実行すると、アクセス・トークンが取得できます。
アクセス・トークン取得のシェル・コマンドは gettoken
です。
gettoken <サービス名> <トークン名>
各プログラム言語からの実行例は TS;DR をご覧ください。
設置する、自作 BOT やスクリプト(以下アプリ)が Qiita/Qiitadon などの Web API 操作を必要とする場合、API のメソッドによってはアクセス・トークンが必要になります。
しかし、アクセス・トークンやパスワードをスクリプト内に記載、もしくはリポジトリ内に設置することはオープン・ソースであるため禁止しています。(センシティブ・データのハードコーディングの禁止)
そのため、アクセス・トークンの取得もしくは登録(保存する)機能はアプリ側で各々実装する必要があります。
この時、必要なアカウントが Qithub(bot)
のアクセス・トークンであった場合、実装の手間を省くためサーバーのシェル・コマンドでアクセストークンを取得できるようにしました。各プログラム言語から外部コマンドとして gettoken
コマンドを実行してください。
アクセス・トークンを必要とする BOT やプログラムは事前に issue を立ててメンテナから同意を得てください。
- 利用の目的
- スクリプトの設置先ディレクトリ。(
gettoken
の呼び出し許可のホワイト・リストに追記する必要があります)
また、ソースコード内のアクセス・トークンのリクエスト箇所にはコメントで明記し、同意を得た issue 番号を必ず添えてください。
Qiitadon の Qithub アカウント(Qithub BOTの)アクセストークンを取得する例。
$ gettoken qiitadon qithub
9axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf91
上記を参考に各プログラム言語から外部コマンドとして呼び出してください。なお Qithub-BOT のトゥート経由のコマンド実行機能である 「Qithub コマンド」は、このシェル・コマンドの利用を禁止とします。
<?php
$access_token = exec('gettoken qiitadon qithub');
#!/usr/bin/env python
import commands
access_token = commands.getoutput('gettoken qiitadon qithub')
$ gettoken -h
Usage: gettoken <service name> <token name>
Service names are:
- qiitadon
- qiita
Token names are:
- qithub Qithub(bot) 本番用アクセストークン。@[email protected]
- qithub-dev Qithub(bot) テスト用アクセストークン。@[email protected]
- qiitime Qiitime 用アクセストークン。@[email protected]
- test 取得テストや表示確認のためのダミートークン。
当然サーバーにアップしないと動作テストできないため毎回 PR を出すのは現実的ではありません。
自分のリポジトリを https://dev.qithub.tk/
にマウントできる仕組みがあるので、そちらでテストください。(その際は、本番トークンを呼び出さないように注意してね)
もしくは各自のローカル環境で、パスが通っているディレクトリに自身のアクセストークンを返す同名のコマンドを設置しても良いと思います。
アクセストークンの利用状況によって制限をかけたりする場合にコントロールしやすいように。
gettoken
コマンドは、お遊びサーバーの以下のパスに設置されています。絶対パスでアクセスする場合に参考にしてください。
/usr/local/bin/gettoken
[トップ] [目次の並び順を変更する]