2012-06-11 19 views
5

私は自分のurl xxx/getjson.phpをwebhookに追加し、一度サインアップすると、私のURLにjsonデータを投稿します。webhookからjson投稿を取得するPHPを作成するには?

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

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

また、私は「ペイロード」を使用する方法がわからない:私が書いたPHPスクリプトがある

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

:私は、データを確認するためにhttp://requestb.in/を使用し、その結果、このようなものです

私は同様のサンプルコードを見つけて、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」を置き換えるが、まだ動作しません。

本当にありがとうございます。ありがとうございます!

+1

post varとは何ですか? '$ _POST ['payload']' – AustinAllover

+1

[php:// input <> $ _POST?](http://stackoverflow.com/questions/4703906/php-input-post)またはhttp:// stackoverflowの可能な複製あなたの質問に記載されていない仕様に応じて、json-in-postからのread-associative-array-from/questions/5806971 – mario

+0

この作業を行うために、PHPやApacheの設定を変更する必要があります。私はsendgridイベントwebhooksを使用していますが、それは私のPHPファイルに投稿されていません。 –

答えて

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; 
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が必要です。 (または、あなたはカールのようなものを使っていますか?)

+1

は、$ _REQUEST ["payload"]を$ _POSTではなく使用する場合にのみ動作します。 webhook APIプロバイダは、私に多くの情報を提供していません。今、私は 'ペイロード'が変数だと分かります。ありがとう –

2

最後にそれを試しました! 3行しか必要としませんでしたが、私は一日を費やしました... webhook APIプロバイダはそれに関するいくつかの情報を提供する必要があります。ご協力いただきありがとうございます!

$data = $_REQUEST["payload"];   
$unescaped_data = stripslashes($data); 
$obj = json_decode($unescaped_data); 
$userid = $obj->signup->id; 
関連する問題