Kibela API を Google Apps Script で実行する
Posts
Kibela Web API のベータ版が公開されました。 Kibela Web API は GraphQL で提供されています。
この記事では、Kibela Web API の Google Apps Script での実行方法を説明します。なお、Google Apps Script のスクリプトは clasp を利用して作成します。
必要な環境
- Kibela アカウント
- Google アカウント(Google Apps Script)
- clasp 実行環境
- 実行環境の構築方法は「clasp を使って Google Apps Script のスクリプトを作成する」を参照のこと。
Kibela アクセストークンの取得
- 右上のユーザーアイコンから、[設定] > [個人用アクセストークン]を開きます。
- [アクセストークンの生成]ボタンをクリックし、タイトルとアクセス権限を設定して[作成]ボタンをクリックします。
- アクセストークンが表示されます。アクセストークンはこれ以降表示されないので、コピーして控えておいてください。
クエリについて
リクエストボディで、query
パラメータに対して取得したいリソースのオブジェクトを指定します。 API コンソール を開き、右側の[Docs]メニューよりオブジェクトの定義を確認できる。
今回は次のクエリで、ログインユーザー(Kibela アクセストークンの発行ユーザー)の最新記事一覧を 1000 件取得します。
{
currentUser {
latestNotes(first: 1000) {
edges {
node { title }
}
}
}
}
Google Apps Script の作成
clasp で Google Apps Script プロジェクトを作成します。詳細は「clasp を使って Google Apps Script のスクリプトを作成する」を参照のこと。
index.ts
に、次のコードを貼り付けます。
function main(): void {
const token = PropertiesService.getScriptProperties().getProperty('KIBELA_API_TOKEN') || '';
const team = PropertiesService.getScriptProperties().getProperty('KIBELA_TEAM') || '';
const endpoint = `https://${team}.kibe.la/api/v1`;
const graphql = `
{
currentUser {
latestNotes(first: 1000) {
edges {
node { title }
}
}
}
}`;
const option: GoogleAppsScript.URL_Fetch.URLFetchRequestOptions = {
method: 'get',
contentType: 'application/json',
headers: {
Accept: 'application/json',
Authorization: `bearer ${token}`,
},
payload: JSON.stringify({ query: graphql }),
};
const res = UrlFetchApp.fetch(endpoint, option);
const json = JSON.parse(res.getContentText());
Logger.log(json);
}
クラウドの GAS プロジェクトを開き、スクリプトのプロパティを設定します。 [ファイル] > [プロジェクトのプロパティ]を開きます。[スクリプトのプロパティ]タブより次のプロパティを追加します。
- KIBELA_API_TOKEN: 取得した Kibela アクセストークン
- KIBELA_TEAM: Kibela チーム名
clasp push
コマンドでクラウドの GAS プロジェクトへアップロードします。クラウドの GAS プロジェクトを開きます。
main
関数を実行すると、Kibela Web API での取得結果がログに出力されます。ログは、[表示]>[ログ]より確認できます。
以上。