Webhookを用いたLINE連携

お世話になります。現在以下のシナリオでアプリを作っているのですが、Step 3において、Webhookが動きません(KintoneのWebhookのログにも出力がないためそもそも動いていない)。

  1. ユーザーがGoogle Form へ入力
  2. GASによりKintoneアプリ へ自動連携
  3. 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様)