質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3255閲覧

IFTTTのWEBHOOKをJAVASCRIPTでPOSTしたいが中身のJSONが渡らない

FictionFunction

総合スコア0

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/11/16 12:58

編集2021/11/18 04:04

前提・実現したいこと

GASでIFTTTのwebhookトリガーを起動したいのですがbodyに指定しているjsonがうまく渡らないようです。GAS及びjavascriptを触るのは初めてで基本的な質問であるからか、調べても解決方法が見つけられませんでした。もう少し勉強してからのほうが良いでしょうか。質問に不足があるようでしたらお教えいただけましたら幸いです。
IFTTT側では、webhookをトリガーとしてvalue1に受け取った値をLINEで送信するように設定しています。

発生している問題・エラーメッセージ

ifttt webhook のアクティビティを見てみるとjsonが渡っておらず空になっています
https://maker.ifttt.com/use/
のdocumentation通りに書いたつもりではあるのです
イメージ説明
イメージ説明

エラーメッセージ

該当のソースコード

javascript

1ソースコード 2function webhookTriger() { 3 var url = "https://maker.ifttt.com/trigger/way_home/with/key/my_key" 4 var options = { 5 method: 'POST', 6 headers: { 7 'Content-Type': "application/json" 8 }, 9 body: { "value1" : "Hello World", "value2" : "", "value3" : "" } 10 }; 11 var response = UrlFetchApp.fetch(url, options) 12 13}

試したこと

bodyにkey:value1 value:HELLO WORLDを設定してpostmanを使ってpostしてみました。エラーメッセージ等は出ていませんが、gasからpostしたときと同様にiftttのアクティビティ確認画面でvalueの値が空になっており、データが渡せていないのではないのではないかと思います。

• ‘POST’を’post’に
bodyのパラメータを{"value1" : "Hello World"}に
変更を試しましたが、結果は変わりませんでした

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Supernove

2021/11/16 13:42

まず、なぜ「うまくいかない」と判断したのでしょうか?こういう質問で「うまくいかない」という曖昧な表現をせず「どんなエラーが出たか」を書いてほしいです。 あと、IFTTTは複数のサービスを連携するものだと思いますが、Webhookでリクエストを送ったあとに何のサービスにつないでいるのかわからないのでそれも説明に加えてほしいです
FictionFunction

2021/11/16 22:37

失礼いたしました。エラーメッセージ等は特に出ていませんが、IFTTTのwebhookアクティビティを確認する画面でvalue1含めすべてのvalue欄が空になっていたため、データが渡っていないのだろうと考えました。IFTTTのactionにはLINEでの通知を設定しています。 [IFTTT] とだけ、メッセージが届くような状態です。
Supernove

2021/11/17 13:31

スクショでいいのでAppletの設定内容を質問に追加してもらってもいいですか?あと質問は修正できるので修正してほしいです
FictionFunction

2021/11/17 14:14

iPhone版のアプリ画面にはなりますがActivity画面とAppletEdit画面のスクリーンショットを追加し、質問内容を修正させていただきました。ご丁寧な対応ありがとうございます。
Supernove

2021/11/17 14:35

ぱっと見設定に問題はなさそうなので考えられることとしては、 EventNameが間違っているかメソッドに誤りがあるかもしれないですね… ドキュメントから確か試せたはずですが、それは動きましたか? https://i.gyazo.com/23a558230a4c4c2fc3e39a5d6d18f9e8.png
FictionFunction

2021/11/17 14:46

TEST IT ボタンから試すと動き [IFTTT] Hello World というメッセージが正常にLINEに送信されました。他にはなにか間違っている可能性のある箇所は見つかりますでしょうか?
Supernove

2021/11/17 17:20

関係あるか分かりませんけど`method`のパラメータの'POST'を小文字にしているサンプルがおおかったので小文字にしたらどうでしょう? 後は`body`のパラメータを{"value1" : "Hello World"}だけにしたら正常に動作するか確認してもらってもいいですか?
FictionFunction

2021/11/18 03:56

• ‘POST’を’post’に • `body`のパラメータを{"value1" : "Hello World"}に 変更しましたが、結果は変わりませんでした。iOSの”ショートカット”アプリからのPOSTを試したところ成功しましたので、もし何か参考になるようであればスクショを添付しようと思います。
FictionFunction

2021/11/18 04:37

Lhankor_Mhyさん  はい。GASのスクリプトです。
FictionFunction

2021/11/18 13:10

そのとおりでした。リンクを頂いた公式ドキュメントに従ってbodyをpayloadに、Content-TypeをContentTypeに修正したところ、POSTの中身が正常に渡りました。色々なサイトを参考にしているうちに、おそらくFETCH apiなるものや他の形式での書き方が混在してしまったのだと思います。UrlFetchApp.fetchがGAS特有のものであることも理解せず、公式ドキュメントがあることにも思い当たらなかったこと、お恥ずかしいばかりです。 ベストアンサー等の仕組みがあるようですのでお聞きしますが、こちらの質問については、改めて回答をいただいたほうが良いでしょうか。それとも、自己解決欄のところから修正箇所をまとめ投稿させていただいたほうがよろしいでしょうか。
Lhankor_Mhy

2021/11/18 13:16

ご解決されて何よりです。 自己解決での処理をお願いします。
FictionFunction

2021/11/18 13:56

了解しました。ありがとうございます。また、稚拙な質問に丁寧にお答えいただき、付き合ってくださったSupernoveさんにもこちらを借りて感謝申し上げます。ありがとうございました。プログラムにふれること、サイトの利用どちらも初めてでしたが真摯な対応にとても安心しました。あまり欲張らず基本的なものから挑戦して行きたいと思います。改めて、お二方とも本当にありがとうございました。修正箇所を投稿しクローズさせていただきます。
guest

回答1

0

自己解決

###問題箇所と解決方法
UrlFetchAppとfetch apiの書式を混在させていたことが原因となっていました。
以下が修正後のコードとなります。body→payload、Content-Type→ContentTypeの二箇所を変更しています。

JavaScript ソースコード function webhookTriger() { var url = "https://maker.ifttt.com/trigger/way_home/with/key/my_key" var options = { method: 'POST', headers: { 'ContentType': "application/json" }, payload: { "value1" : "Hello World", "value2" : "", "value3" : "" } }; var response = UrlFetchApp.fetch(url, options) }

投稿2021/11/18 14:01

FictionFunction

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問