MISSION
GitHubのGraphQL APIでExplorerのデフォルトqueryをApps Scriptでやる
GitHubのGraphQL APIでExplorerのデフォルトqueryをApps Scriptでやる
Explorer
https://docs.github.com/en/free-pro-team@latest/graphql/overview/explorer
STEPS
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtNPJGZBpP8kb3paC2ckryojGK7-MaFBVlk9BqVcRnzNzfWRWTTmwT18dBP4MKaRwvQ4AqbCuQqEHOnu6ZwPN0rFWVDmy20SHtSJ4DjFI_TmMzkwovKGw9XT-3f6Jk_Y3GaVE9XDdhemxM/w400-h240/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2020-10-10+21.21.11.png)
初回実行時は以下のような許可を求められます。
ログに結果が表示されます。
この
query {
viewer {
login
}
}
をGoogle Apps Scriptでやってみたくて書きました。
PROCESS
personal access tokenを発行する
personal access tokenを発行する
↓
スクリプトのプロパティに保存する
↓
コードを書いて保存する
↓
コードを実行する
↓
ログを確認する
STEPS
STEP1:personal access tokenを発行する
の手順でアクセストークンを取得します。
STEP2:スクリプトのプロパティに保存する
スクリプトエディタ > ファイル > プロジェクトのプロパティ を開いて
「行を追加」をクリックして
プロパティをaccess_tokenとして
値にはSTEP1で取得したパーソナルアクセストークンを入れて保存します。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtNPJGZBpP8kb3paC2ckryojGK7-MaFBVlk9BqVcRnzNzfWRWTTmwT18dBP4MKaRwvQ4AqbCuQqEHOnu6ZwPN0rFWVDmy20SHtSJ4DjFI_TmMzkwovKGw9XT-3f6Jk_Y3GaVE9XDdhemxM/w400-h240/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2020-10-10+21.21.11.png)
STEP3:コードを書いて保存する
以下のコード.gsをそのままコピペすれば実行できるはず。
コード.gs const endpoint = "https://api.github.com/graphql"; /************************************ APIをたたいてログに出す ************************************/ function runGraphql() { const response = getResponse(); Logger.log(response); } /************************************ APIを実行して結果を返す ************************************/ function getResponse() { return UrlFetchApp.fetch(endpoint, getOptions()); } /************************************ getOptions ************************************/ function getOptions() { return { "method": "post", "contentType": "application/json", "headers": { "Authorization": "bearer " + getProp("access_token"), }, "payload": JSON.stringify({ "query": getQuery() }) }; } /************************************ クエリ ************************************/ function getQuery() { return `{ viewer { login } }` } /************************************ スクリプトのプロパティにアクセスする ************************************/ function getProp(key) { return PropertiesService.getScriptProperties().getProperty(key); } |
コメント入れると48行ありますが、実質30行くらいです。
getQueryの中身を変えると指定したデータにアクセスできます。
ここではデフォルトの
viewer {
login
}
にしています。
STEP4:コードを実行する
実行 > runGraphql で実行します。
許可を確認
アカウントを選択
詳細
〜(安全ではないページ)に移動
許可
STEP5:ログを確認する
表示 > ログ
これでExplorer実行時、右に表示される結果と同じ結果をコードで取得できました。