6

URL xxx / getjson.phpをWebhookに追加すると、ユーザーがサインアップすると、jsonデータがURLに送信されます。http://requestb.in/を使用してデータを確認すると、結果は次のようになります。

payload{ "signup": { "address": { "address1": "XX",
                                  "country": "United States"},                     
                     "id":22}}
token

私が書いたphpスクリプトは次のとおりです。

$obj=json_decode($_POST);            //cannot get the json data

$userid=$obj->signup->id;

また、「ペイロード」の使い方もわかりません

私は同様のサンプルコードを見つけ、それらのWebフックを使用してそれをうまくテストします。 http://support.unbounce.com/entries/307685-how-does-the-form-webhook-work ただし、パラメーターとして「payload」ではなく「data.json」を使用します。

$form_data = json_decode($unescaped_post_data['data_json']);  
$userid= =$form_data->signup->id;

私は彼らのstripslashes_deep関数を使用し、「data_json」を「payload」に置き換えましたが、それでも機能しません。

私は本当にあなたの助けに感謝します。ありがとう!

4

3 に答える 3

3

$ _POSTは配列になるため、キーを指定する必要があります。

$obj=json_decode($_POST['payload']); // put the second parameter as true if you want it to be a associative array

$userid=$obj->signup->id;
于 2012-06-11T21:29:26.597 に答える
2

ついにうまくいきました!必要なのは3行だけですが、私は1日を費やしました...webhookAPIプロバイダーはそれに関するいくつかの詳細情報を提供する必要があります。ご協力いただきありがとうございます!

$data = $_REQUEST["payload"];           
$unescaped_data = stripslashes($data);
$obj = json_decode($unescaped_data);
$userid = $obj->signup->id;
于 2012-06-12T14:17:44.220 に答える
0

$obj=json_decode($_POST);JSON文字列のデコードに失敗しているようです。

あなたが抱えている問題は、「ペイロード」データを適切にJSONエンコードしていないことだと思います。

payload{ 
    "signup": { 
             "address":{ 
                     "address1": "XX",
                     "country": "United States"
              },                     
              "id":22
     }
}

トークンが正しくフォーマットされていません。{ "signup": { "address": { "address1": "XX","country": "United States"},"id":22}}正しいJSON文字列です。JSONの両端に余分なものがあると、解析できなくなります。

$_POST['payload']おそらくあなたがそれにアクセスする方法でしょう。

また、あなたは本当に役立つのに十分なコードを私たちに与えませんでした。HTMLフォーム、または実際にPOSTを送信/構築するJavascriptのいずれかが必要です。(またはCurlのようなものを使用していますか?)

于 2012-06-11T21:30:31.477 に答える