はじめに
Googleカレンダーの予定、メール、TODOリストの情報を取得・操作するのに、GASはとても便利ですよね。
弊社はメールやカレンダーの標準ツールにGoogleを使用しているのですが、
そのような会社では、コミュニケーションツールはTeamsやslack等、Googleではない場合が殆どではないでしょうか。
私は、slack、Teams、Chatworks、Zohoを業務で利用しています。
複数ツールを使用していると、GASから外部のREST APIを使用したい場面が多々あります。
今回は、GASからZohoのWebhook APIを呼び出すプログラム を実装したので、手順をご紹介します。
やってみたこと
Googleスプレッドシート上の「出勤」ボタンを押下するとGASが実行される。
そして、Googleカレンダーより本日分の予定会議とTODOリストを取得し、
Zoho Cliqのチャンネルにメッセージ投稿する。
(私が出勤したことを社内メンバーにお知らせする意味も兼ねています。)
この記事で書かないこと
GASでの、予定やTODOリスト取得の実装方法
(Web検索すると多くの記事がHitしますので、ここでは説明しません。)
この記事で書くこと
Zoho Cliqへ メッセージ投稿するための、Webhook URLの調べ方
GASでZoho Cliqへ メッセージ投稿するサンプルソース
必要な情報(Webhook URL)の取得
まず、メッセージ投稿先の Zoho CliqのWebhook URLを調べます。
Webhook URLの調べ方
- Zoho Cliq 起動
- 右上にあるプロフィール画像をクリック
- Bots & Tools に移動
- Webhook Tokensに移動(左下から2番目)
- IDの認証画面が表示されたらパスワード認証して 次画面へ進む
- Webhookトークン一覧画面にて、トークンを選択。(1件目でOK)
- [WebhookのURLを取得する]ボタン押下して 「WebhookのURL取得」画面へ進む
サンプルソース
GASの実装です。(Zoho Cliqへメッセージ投稿する箇所のみ抜粋)
function postToZohoCliq(strMsg) {
// 「必要な情報(Webhook URL)の取得」の手順で取得したWebhook URLをペースト
var url = "https://cliq.zoho.com/api/v2/channelsbyname/{$channel-unique-name}/message?zapikey={paste_webhook_token_here}";
var payload = {
text: strMsg //送信したいメッセージをここに書きます
};
var options = {
method : "post",
contentType: "application/json",
payload: JSON.stringify(payload)
};
try {
var response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());
} catch (e) {
Logger.log("メッセージ送信に失敗しました: " + e.message);
}
}
実行イメージ
- 「出勤」ボタンでGAS起動
- Googleカレンダーより本日の予定会議とTODOリストを取得
- 投稿メッセージ文字列を生成
- Webhook APIで、Zoho Cliqへメッセージ投稿
意図した通り、メッセージ投稿されましたね!
私の場合は、このように日々の作業メモ用にスプレッドシートを用意してメモを取ったり、
毎朝の機械化可能なルーチンワークを「出勤」ボタンのGASに集約して省力化しています。
ご参考になれば幸いです。
参照したリファレンス
Working with Webhook Tokens