📈

Gather.townのアクティブユーザー数を自動で記録する

2023/02/27に公開

Gatherの適切なキャパシティ把握のために、アクティブユーザー数を自動で記録するGASを作成しました。

完成したもの

作り方

スプレッドシートのGoogleAppScriptに以下の関数を作成。
ここの環境に合わせてAPIキーとスペースIDの書き換えが必要。

function logActiveUser() {
  // APIからスペース情報を取得
  const url = "https://api.gather.town/api/v2/users/me/owned-spaces";
  const headers = {
    "apiKey": PropertiesService.getScriptProperties().getProperty("API_KEY")
  };
  const response = UrlFetchApp.fetch(url, {
    "headers": headers
  });
  const data = JSON.parse(response.getContentText());

  // スペースIDを指定
  const spaceId = 'xxxxxxx\\your-space-id'
  // スペースの人数を取得
  const laprasSpace = data[spaceId]
  const numActive = laprasSpace['numActive']

  // スプレッドシートに出力
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow([new Date(), numActive])
}

利用するAPI

https://api.gather.town/api/v2/users/me/owned-spaces

headerに apiKey を渡すことで利用することができます。(apiKeyの取得方法はこちら)

※仕様が公開されていないAPIのため、将来的に使えなくなるかもしれません。

スペースID

スペースのURLの https://app.gather.town/app/ よりも後ろの部分です。
スラッシュ「/」をバックスラッシュ「\」に書き換える必要があるので注意してください。

定期実行の設定

このスクリプトは最終行に日時+アクティブ人数を出力します。GASのトリガーで定期実行を設定しましょう。

終わりに

APIを利用することで簡単にアクティブユーザー数の推移を可視化できました。実際に自社のスペースで購入するキャパシティ見積りに利用しています。
他にもアクティブ人数によってSlack 通知するなどいろいろ応用できそうですね。

Discussion