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
初回実行時は以下のような許可を求められます。
ログに結果が表示されます。
この
query {
viewer {
login
}
}
をGoogle Apps Scriptでやってみたくて書きました。
PROCESS
personal access tokenを発行する
personal access tokenを発行する
↓
スクリプトのプロパティに保存する
↓
コードを書いて保存する
↓
コードを実行する
↓
ログを確認する
STEPS
STEP1:personal access tokenを発行する
の手順でアクセストークンを取得します。
STEP2:スクリプトのプロパティに保存する
スクリプトエディタ > ファイル > プロジェクトのプロパティ を開いて
「行を追加」をクリックして
プロパティをaccess_tokenとして
値にはSTEP1で取得したパーソナルアクセストークンを入れて保存します。
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実行時、右に表示される結果と同じ結果をコードで取得できました。