お世話になります。現在以下のシナリオでアプリを作っているのですが、Step 3において、Webhookが動きません(KintoneのWebhookのログにも出力がないためそもそも動いていない)。
- ユーザーがGoogle Form へ入力
- GASによりKintoneアプリ へ自動連携
- KintoneにはWebhookを設定し、追加されたレコードをGASを使ってLINE通知
試しにGoogle FormではなくKintoneアプリからマニュアルで直接データ入力をしたところ、正常にLINEへの通知が動きました。現象としては以下のURLに記載される内容と近いのですが、Google Form経由でKintoneアプリにレコードが追加された場合でも、Webhookは動くはずのようにも読み取れます。
https://developer.cybozu.io/hc/ja/community/posts/360055110631-%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E8%87%AA%E5%8B%95%E3%81%A7%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AE%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88
対応方法についてご教示のほどよろしくお願いします。
Ryosuke Mouriさん
こんにちは。
Webhookについて、以下の制約があります。
https://jp.cybozu.help/k/ja/user/app_settings/set_webhook/webhook.html
次の方法でレコードを操作した場合は、Webhookの通知は送信されません。
・Excel/CSVファイルを読み込んでレコードを操作する
・複数のレコードを一括削除する
・複数のレコードを一括操作するREST APIを使用してレコードを操作する
GASからkintoneへの登録は「/k/v1/record.json」のREST APIでPOSTされてますでしょうか。
「/k/v1/records.json」など、一括登録用のAPIですと処理できないものと思われます。
koichiさん、
有難うございます!以下URLを参考にGoogle Formに入力されたレコードをKintoneアプリに追加しているのですが、コードを見る限り、ご指摘いただいた通り「/k/v1/record.json」のREST APIでPOSTされているように見受けられます。
https://qiita.com/Arahabica/items/063877b0da439020d2c2
他の方法でGoogle FormとKintoneを連携できるライブラリーなどご存知でしょうか?もし無さそうでしたら、一から作ってみようかなと思っています。。
Ryosuke Mouriさん
ご確認ありがとうございます。
レコード作成の部分が「records.json」になっているため、一括登録処理かと思います。
var response = UrlFetchApp.fetch(
"@1/records.json".replace(/@1/g,this._getEndpoint(app.guestid)),
this._postOption(app, payload)
);
ライブラリですと、非公式ですが以下を見つけました。更新日が4年前のため正常に動くかは分かりかねます。
https://github.com/uuum/gas-kintone
(UUUM様)
自身でのコーディングでしたら以下ご参考までです。
https://developer.cybozu.io/hc/ja/articles/115003856483-Google-%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%A8kintone%E3%82%92%E9%80%A3%E6%90%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-
(Mamoru Fujinoki様)
https://qiita.com/juri_don/items/cfe95dbd884e89838a24
(juridon様)