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実行時、右に表示される結果と同じ結果をコードで取得できました。











