お世話になっております。
現在Webページのフォームとkintoneのアプリを連携させ、フォームに入力された内容が自動でkintoneに入力されるようにしています。
更にkintoneに追加された時点で、一部内容とurlをSlackに通知しようと思ったのですが、うまくいきません。
自動でレコードが追加された場合は"app.record.create"イベントを起動させる方法はないのでしょうか。
やりたいこと自体はフォーム入力時のPOSTのレスポンスのIDでも出来ると思うのですが、今回は上記、"app.record.create"の起動についてご教示いただきたく存じます。
田辺さん
こんにちは。ひよこです。
外部から kintone JS API は発火できないです。
> kintoneに追加された時点で、一部内容とurlをSlackに通知しようと思ったのですが、うまくいきません。
kintone には、 Webhook があり、レコード追加時にも発火します。
https://jp.cybozu.help/k/ja/user/app_settings/set_webhook/webhook.html
Slack の Incoming Webhook URL を kintone Webhook に設定すれば、追加時に Slack に通知されると思います。
ただそのときに表示される情報は「レコードが追加されました」と レコードURL のリンクがあるくらいです。
試したことないのですけど…
追加したレコードの内容の一部を Slack 表示するのであれば、
AWS Lambda や Google Apps Script などのサービスに実装したスクリプト を間に入れる必要があると思います。
- スクリプトでは以下を行う
① kintone Webhook から受け取った内容を使ってデータを整形する
② 整形したデータを Slack の Incoming Webhook URL に対してPOSTする
- kintone Webhook に スクリプトのURL を設定する
https://developer.cybozu.io/hc/ja/articles/201941984#success
にあるとおり、
「レコード追加画面もしくは、再利用画面で保存ボタンをクリックし、サーバーの保存が成功した後に発生します。」
ので、rest apiからは起動できないと思います。
現在用意されている、kintoneのjavascriptカスタマイズのイベントすべては、
kintoneの一覧画面や詳細画面上から操作したときにのみ発生するので、
restapiやcsv取込等のタイミングではカスタマイズできないようです。
すみません、ひよこさんと回答がかぶってしまいました。
ひよこさん
ご回答ありがとうございます。田辺です。
kintoneにWebhook機能があったのですね!見逃しておりました。
ただ、単純にSlackのIncomingWebhookのURLを張り付けただけではダメでした。
お伝えいただいたようにGASを使い、kintoneのWebhook機能で送られるJSONをパーズしてSlackのpayload用に整形して渡しました。
ご助言いただき誠にありがとうございました。検討していた解決策よりよいものができました。
PVさん
ご回答ありがとうございます。田辺です。
公式の見解のソースを示していただきありがとうございます。大変参考になりました。
kintoneのjavascriptAPIはやはりkintone内での能動的な操作でしか起動しないのですね…
ひよこさんへの回答に書かせていただいたようにやりたいこと自体はレスポンスのIDを使うものより柔軟に対応出来ました。
ご助言いただき誠にありがとうございました。