レコード追加時の内容をzoomチャットへ通知する方法について

zoomアプリのIncoming Webhookを使用して特定のkintoneアプリでレコード追加時にチャットへレコードの情報を通知したいのですがzoomチャットでの表示される形式の設定がうまくいかず困っております

JavaScript以外でも通知方法があればご教授いただきたいです!よろしくお願いします

(function() {
    // Zoom Webhook URL.
    const ZOOM_URL = 'https://integrations.zoom.us/chat/webhooks/incomingwebhook/XXXXXXXXXXeXXXXIA';
    const ZOOM_TOKEN = "ojXXXXXXXXiM3uVkg";
    // 連携イベント.
    const events = [
        'app.record.create.submit.success',
        'app.record.edit.submit.success'
    ];

    kintone.events.on(events, function(event){
        const headers = {
            'Content-Type': 'application/json',
            'Authorization': ZOOM_TOKEN
        };
        const send_mess =[{           
            "head":{
                "text":"【kintone故障記録追加通知】"
            },
            "body":[{
                "type":"message",
                "text":"・工程:" + event.record.工程名.value
            }]
        }];
        kintone.proxy(
            ZOOM_URL,
            'POST',
            headers,
            JSON.stringify(send_mess)
        ).then(function([body, status, responseHeaders]){
            console.log('Zoom送信成功', status, body);
        }).catch(function(e){
            console.error('Zoom送信失敗', e);
        });
        return event;
    });
})();

「いいね!」 1

本件、当方ではZoomの検証環境を持ち合わせておらず、試せていない前提での回答とはなりますが…

Zoom Developersの 受信Webhook経由でメッセージを送信するに記載されたリクエスト本文と、実際に送信するsend_messの構造が異なるように見受けられます。

const send_mess = [{ ... }];を以下のように変更して改善するか、もしよろしければお試しください。

const send_mess = {
  "content": {
    "head": {
      "text": "【kintone故障記録追加通知】"
    },
    "body": [
      {
        "type": "message",
        "text": "・工程:" + event.record.工程名.value
      }
    ]
  }
};
「いいね!」 1

ご返信ありがとうございます!

いただいた内容で修正を行いテストしてみましたがうまくいきませんでした…
ありがとうございます!

「いいね!」 1

こちらこそお試しいただいてありがとうございます!うまくいかなかったということですね。。。コードやZoomリファレンスを再確認して以下2点ほど気になったので、もしよろしければお試しください。

  • ZOOM_URLのURL末尾にパラメータ?format=fullを追記する
    先にご紹介した記事に含まれる、リクエストURL(Request URL)の例の末尾に?format=fullと記載がありました。チームチャットへのメッセージの送信方法を参照したところ、formatとしてmessagefullなどを指定できるようです。未指定の場合に関する記載は見つけられなかったのですが、未指定の場合はmessage(プレーンテキスト)になるのかもしれません。明示的に?format=fullを指定することで改善する可能性も考えられます。
    例)const ZOOM_URL = 'https://integrations.zoom.us/chat/webhooks/incomingwebhook/XXXXXXXXXXeXXXXIA?format=full';

  • kintone.proxy()内のJSON.stringify(send_mess)send_messに変更する
    JSON.stringify()によって、send_messの内容が文字列に変換されたことが原因とも考えられます。kintone.proxy()の引数「data」ではオブジェクトまたは文字列が対応しているので、send_messをそのままオブジェクトとして送信して成功するかご確認ください。

最後に、kintoneからZoomへのWebhook通知の送信には成功しているようですので、あとは通知の受け手側であるZoomでの設定や仕様に関する原因も考えられます。本投稿でも解決しない場合は、お手数をおかけしますがZoom側へのお問い合わせもご検討いただけますと幸いです。

「いいね!」 2

URLの末尾に?format=fullを追加する方法でうまくいきました!

投稿前の検証時にいれてみたことがあったのですがその時はsend_messの中身がよくなかったようで表示できなかったようです…

ご対応ありがとうございました!!!!

「いいね!」 2