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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1052閲覧

IFTTTのWebhooks json形式での値渡しがうまくいかない。

aichi-tomida

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/08/17 23:55

編集2019/08/18 13:45

最終目的はWebhooksで
URL:省略 (仮にhttp://xxx.ne.jp/location.phpとする。)
Method:POST
Contents:Type application/json
↓ここが間違っている?
Body: {"key": {{OccurredAt}},"key2":"2","key3":"3"}
※key2、key3は場所ごとに変更予定

if this then thatの thisをlocation(you enter an area) thatを webhooksとしました。

  • location.php ここが間違っている?

PHP

1<?php 2header("Content-type: text/html; charset=utf-8"); 3 4$title = "json結果"; 5 6$key1 = $_POST['key']; 7$key2 = $_POST['key2']; 8$key3 = $_POST['key3']; 9 10$body = "実行日時:".date('Y/m/d H:i:s')."\r\n"; 11 12$body = $body."result\r\n".$key1."\r\n".$key2."\r\n".$key3."\r\n"; 13 14$from = "dummy-dummy-xyz-abc@example.com"; 15$headers = 'From: '.mb_encode_mimeheader("test").'<'.$from.'>'; 16$headers .= "Return-Path: dummy-dummy-xyz-abc@example.com"; 17 18mb_language('Japanese'); 19mb_internal_encoding("UTF-8"); 20 21// 本来はsendtodropbox 22if (mb_send_mail("dummy-dummy-xyz-drop@example.com", $title, $body , $headers)) { 23 echo date('Y/m/d H:i:s')."に送信完了"; 24} else { 25 echo date('Y/m/d H:i:s')."に送信失敗"; 26}

これで仮仕様として事前に設定した位置に入った時にsendtodropboxにて自分のdropboxにテキストを書き込ませるようにしたのですが、動いたには動いたのですが

  • body.txt
実行日時:2019/08/17 13:16:33 result

resultの後は空白+改行となります。

IFTTTのlocationで作成したphpに値を渡す正しいソースコードをご教授願います。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/08/18 00:46

実在するドメインにメールを送信するようなコードの場合、 例示ドメインをついかいましょう。
aichi-tomida

2019/08/18 00:47

失礼しました。ネチケットの話ですね。
退会済みユーザー

退会済みユーザー

2019/08/18 13:45

ちなみによくあるのがドメイン [ test.com ] 当てにメールを送信して情報漏洩 ※ ネチケットレベルの話じゃなくネットリテラシー
aichi-tomida

2019/08/18 13:47

ネットリテラシーなんですね。んんん、僕は恥ずかしい。
aichi-tomida

2019/08/19 22:09

読ませていただきます。
guest

回答1

0

ベストアンサー

php で、JOSN の POST を受け取りたいと理解しましたが正しいですか?
その場合、$_POST では拾えないため、body を直接読む必要があります。
php://input を使用するケースが多いです。

投稿2019/08/18 00:04

編集2019/08/18 00:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

aichi-tomida

2019/08/18 00:11

>php で、JOSN の POST を受け取りたいと理解しましたが正しいですか? そうです。 >php://input を使用するケースが多いです。 そのキーワードを他のサイトでみたような記憶があります。 それを基に自分でももう少し調べます。
aichi-tomida

2019/08/18 00:46

ご指摘の箇所を直し、試しにthisをDate&Timeにしたり、他のphpからjsonを渡してみたらうまくいっています。 もう一度、locationで試してから、改めて正式御礼回答とさせていただきます。
aichi-tomida

2019/08/18 13:52

上手くいったように見えましたが、うまくいってなかったです。
aichi-tomida

2019/08/19 22:10

通勤中でlocationの設定していますが、まったくダメになりました。 自宅のPCからWebブラウザからPOSTするのは問題ないですが・・・汗
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問