リモートワークが当たり前になり、バーチャルオフィスを導入するところも増えていますが、課題となるのがバーチャルオフィスに入っても「誰もいなくて抜けてしまう」こと。
それなら誰かが入室したタイミングでSlackに通知すれば、他のメンバーも自ずと入るのではないかと思っていたときに、以下の記事にたどり着きました。
しかし、プログラムを拝借してもうまく動かなかったので、仕様が変わった部分を備忘録として残しておこうと思います。
GatherAPI と Slack と GAS の用意
詳しくは下記を参考にしてください。
記事通りGatherAPIとSlack、GASを用意していただければOKです(sogemaroさんありがとうございます)。
APIの仕様が変わった部分
ここからが本題です。
うまく動かなかった部分と修正方法をピックアップします。
Gather Space ID
以前はGatherスペースのURLの app/
以下をコピペして / (スラッシュ) を \ (バックスラッシュ)に置き換えるだけで良かったのですが、以下の方法でうまくデータを取得できました。
URL例 : https://app.gather.town/app/xxxxx/yyyyy
Before
// GatherのSpace IDを設定
const GATHER_SPACE_ID = 'xxxxx\yyyyy'; //スラッシュ(/)→バックスラッシュ(\)に変更
After
// GatherのSpace IDを設定
const GATHER_SPACE_ID = 'xxxxx\\yyyyy'; //スラッシュ(/)→バックスラッシュ(\)×2に変更
numActive
numActive (現在アクティブなユーザー)を取得する際、エラーが出て取得できませんでしたが、以下の方法でうまくデータを取得できました。
Before
// スペースの人数を取得
const workSpace = data[spaceId]
const activeUserCount = workSpace['numActive']; //ここでエラーが出る
return activeUserCount;
After
const workSpace = data[spaceId]
const activeUserCount = workSpace["numActive"]; //シングルクォーテーション(')をダブルクオーテーション(")に変更
return activeUserCount;
最後に
サクッとこれだけになりますが、私と同じところで躓いている人の手助けになれば嬉しいです。
それでもうまくいかないときは、 console.log()
で値が保持されているか都度確認するのがオススメです。