3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GASAdvent Calendar 2021

Day 19

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

Last updated at Posted at 2021-12-19

はじめに

こんにちは、コーポレートエンジニアの まいまい です。
今回は 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 が変わるので、新しくデプロイした場合はカスタム統合を再度設定し直してトークン認証してください。

参考

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

https://qiita.com/koshi_funamizu/items/a7acdbb8bde69ce9b22d

https://developers.facebook.com/docs/workplace/integrations/custom-integrations/webhooks/?locale=ja_JP

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?