Kibela APIをGoogle Apps Scriptで実行する

Posts

Kibela Web API のベータ版が公開されました。 Kibela Web APIはGraphQLで提供されています。

この記事では、Kibela Web APIのGoogle Apps Scriptでの実行方法を説明します。なお、Google Apps Scriptのスクリプトはclaspを利用して作成します。

必要な環境

Kibelaアクセストークンの取得

  1. 右上のユーザーアイコンから、[設定]>[個人用アクセストークン]を開きます。
  2. [アクセストークンの生成]ボタンをクリックし、タイトルとアクセス権限を設定して[作成]ボタンをクリックします。
  3. アクセストークンが表示されます。アクセストークンはこれ以降表示されないので、コピーして控えておいてください。

クエリについて

リクエストボディで、queryパラメータに対して取得したいリソースのオブジェクトを指定します。 API コンソールを開き、右側の[Docs]メニューよりオブジェクトの定義を確認できる。

今回は次のクエリで、ログインユーザー(Kibelaアクセストークンの発行ユーザー)の最新記事一覧を1000件取得します。

{
  currentUser {
    latestNotes(first: 1000) {
      edges {
        node { title }
      }
    }
  }
}

Google Apps Scriptの作成

  1. claspでGoogle Apps Scriptプロジェクトを作成します。詳細は「clasp を使って Google Apps Script のスクリプトを作成する」を参照のこと。

  2. 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);
}
  1. クラウドのGASプロジェクトを開き、スクリプトのプロパティを設定します。[ファイル]>[プロジェクトのプロパティ]を開きます。[スクリプトのプロパティ]タブより次のプロパティを追加します。

    • KIBELA_API_TOKEN: 取得したKibelaアクセストークン
    • KIBELA_TEAM: Kibelaチーム名
  2. clasp pushコマンドでクラウドのGASプロジェクトへアップロードします。

  3. クラウドのGASプロジェクトを開きます。main関数を実行すると、Kibela Web APIでの取得結果がログに出力されます。ログは、[表示]>[ログ]より確認できます。

以上。