我将我的网址xxx / getjson.php添加到webhook中,一旦有人注册,它会将json数据发布到我的网址。我使用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 但是,他们使用'data.json'而不是'payload'作为参数。
$form_data = json_decode($unescaped_post_data['data_json']);
$userid= =$form_data->signup->id;
我使用了他们的stripslashes_deep函数,并将'data_json'替换为'payload',但仍然不起作用。
我真的很感谢你的帮助。谢谢!
答案 0 :(得分: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;
答案 1 :(得分:2)
终于解决了!只需要三行,但我花了一整天...... webhook API提供商应提供更多有关它的信息。谢谢你的帮助!
$data = $_REQUEST["payload"];
$unescaped_data = stripslashes($data);
$obj = json_decode($unescaped_data);
$userid = $obj->signup->id;
答案 2 :(得分: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这样的东西?)