Kibela APIをGoogle Apps Scriptで実行する
Blog
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での取得結果がログに出力されます。ログは、[表示]>[ログ]より確認できます。
以上。