1
Help us understand the problem. What are the problem?

posted at

updated at

Organization

GASのウェブアプリをWorkplaceカスタム統合のWebhooksに設定する

はじめに

こんにちは、コーポレートエンジニアの まいまい です。
今回は Meta 社 (旧 Facebook 社) のビジネス向けコミュニケーションツールである Workplace に関する記事です。

今回の目的

Workplace では カスタム統合(アプリ) を追加できます。
カスタム統合の設定項目の中には Webhooks があり、ここを設定することで Workplace で Webhook を利用できます。

今回は Google Apps Script (以下、GAS) でウェブアプリをデプロイし、その URL をカスタム統合の Webhooks 設定で コールバック URL に指定して利用する場合に、カスタム統合の Webhooks 設定時のトークン認証を通す方法 を説明したいと思います。

カスタム統合のWebhook設定画面.png

GAS の作成とウェブアプリのデプロイ

GAS の作成

  1. https://script.google.com/ にアクセスし、新しいプロジェクトを作成します。
  2. GETPOST を受け取る関数 doGetdoPost のコードを作成し、保存します。

以下に doGetdoPost のサンプルコードを紹介します。

sample.gs
// Webhooks設定のトークン認証で使用するトークンを設定
const VERIFY_TOKEN = "hogehoge"; 

function doGet(e) {
  var validRequest = e.parameter['hub.verify_token'] === VERIFY_TOKEN;
  var res = validRequest ? e.parameter['hub.challenge'] : 'Invalid Request';
  return ContentService.createTextOutput(res).setMimeType(ContentService.MimeType.TEXT);
}

function doPost(e) {
  var json = e.postData.contents;
  var data = JSON.parse(json);
  // 以下、実行したい処理を書く
}

  • VERIFY_TOKEN に Workplace カスタム統合の Webhooks 設定でトークン認証する際に使用するトークンを設定します。
    • ご自身の好きな文字列を設定してください。
  • Webhooks 設定のトークン認証時に doGet が実行されます。
    • Workplace 側で入力されたトークンと VERIFY_TOKEN が比較され、相違があると Invalid Request が返されます。

GAS ウェブアプリのデプロイ

  1. GAS 画面で[デプロイ]ボタンをクリックし、新しいデプロイ をクリックします。 GASウェブアプリのデプロイ1.png
  2. [種類の選択]の右側の歯車アイコンをクリックし、ウェブアプリ をクリックします。 GASウェブアプリのデプロイ2.png
  3. 以下のように設定し、デプロイ ボタンをクリックします。
    • 説明: 任意の説明を入力します。
    • 次のユーザーとして実行: 自分 を選択します。
    • アクセスできるユーザー: 全員 を選択します。 GASウェブアプリのデプロイ3.png
  4. [ウェブアプリ]のところに表示されている URL を使いますので、コピーをクリックします。 GASウェブアプリのデプロイ4.png

Workplace カスタム統合の Webhooks 設定

  1. カスタム統合の設定ページ https://your-company-instance.workplace.com/work/admin/apps にアクセスします。
  2. Webhooks を設定したいカスタム統合をクリックします。
  3. [Webhooks]をクリックします。
  4. 設定したい項目の鉛筆アイコンをクリックします。今回は[グループ]の鉛筆アイコンをクリックしています。 カスタム統合のWebhook設定画面2.png
  5. 設定画面が展開しますので、以下のように設定して 保存 ボタンをクリックします。
    • コールバックURLフィールド: 先ほどコピーしておいた GAS ウェブアプリの URLを貼り付けます。
    • トークンを認証フィールド: GAS で VERIFY_TOKEN に設定した文字列を入力します。
    • comments/posts/membership/membership_requests: 必要なものにチェックを入れます。今回は posts のみチェックを入れています。 カスタム統合のWebhook設定画面3.png
  6. トークン認証に成功すると画面左下に「Webhook設定が更新されました。」と表示され、Webhooks の設定が完了します。 トークン認証成功.png
  7. トークン認証に失敗すると以下のようなポップアップが表示されますので、その場合は設定内容を確認してください。 トークン認証失敗.png

以上で Workplace カスタム統合の Webhooks が有効になり、設定したイベントが発生すると GAS ウェブアプリの doPost が実行されます。

GAS ウェブアプリはデプロイし直すと URL が変わるので、新しくデプロイした場合はカスタム統合を再度設定し直してトークン認証してください。

参考

今回はこちらの記事を参考にさせていただきました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?