JSON Post PHP (TypeForm)
JSON Post PHP (TypeForm)
我以前从未使用过JSON,如果这是一个简单的请求,我深表歉意。
我有一个 webhook 设置,它向我发送 JSON Post(下面的示例)- 我想从 "text":"250252"
和 {"label":"CE"}
[ 中提取两个答案=17=]
{
"event_id": "1",
"event_type": "form_response",
"form_response": {
"form_id": "VpWTMQ",
"token": "1",
"submitted_at": "2018-05-22T14:11:56Z",
"definition": {
"id": "VpWTMQ",
"title": "SS - Skill Change",
"fields": [
{
"id": "kUbaN0JdLDz8",
"title": "Please enter your ID",
"type": "short_text",
"ref": "9ac66945-899b-448d-859f-70562310ee5d",
"allow_multiple_selections": false,
"allow_other_choice": false
},
{
"id": "JQD4ksDpjlln",
"title": "Please select the skill required",
"type": "multiple_choice",
"ref": "a24e6b58-f388-4ea9-9853-75f69e5ca337",
"allow_multiple_selections": false,
"allow_other_choice": false
}
]
},
"answers": [
{
"type": "text",
"text": "250252",
"field": {
"id": "kUbaN0JdLDz8",
"type": "short_text"
}
},
{
"type": "choice",
"choice": {
"label": "CE"
},
"field": {
"id": "JQD4ksDpjlln",
"type": "multiple_choice"
}
}
]
}
}
目前我的 PHP 文件中有这个:
$data = json_decode(file_get_contents('php://input'));
$ID = $data->{"text"};
$Skill = $data->{"label"};
这不起作用,我得到的都是空的 - 非常感谢任何帮助,谢谢。
您需要查看您正在接收的 JSON 对象,以了解您在使用 json_decode
后接收的对象的结构,您想要获得的是 $data->form_response->answers
, 所以你可以有一个更容易访问的变量:
$answers = $data->form_response->answers;
记住$answers
是一个数组
因此,要实现您想要达到的目标,您可以这样做:
$data = json_decode(file_get_contents('php://input'));
$answers = $data->form_response->answers;
$ID = $answers[0]->text;
$Skill = $answers[1]->choice->label;
我以前从未使用过JSON,如果这是一个简单的请求,我深表歉意。
我有一个 webhook 设置,它向我发送 JSON Post(下面的示例)- 我想从 "text":"250252"
和 {"label":"CE"}
[ 中提取两个答案=17=]
{
"event_id": "1",
"event_type": "form_response",
"form_response": {
"form_id": "VpWTMQ",
"token": "1",
"submitted_at": "2018-05-22T14:11:56Z",
"definition": {
"id": "VpWTMQ",
"title": "SS - Skill Change",
"fields": [
{
"id": "kUbaN0JdLDz8",
"title": "Please enter your ID",
"type": "short_text",
"ref": "9ac66945-899b-448d-859f-70562310ee5d",
"allow_multiple_selections": false,
"allow_other_choice": false
},
{
"id": "JQD4ksDpjlln",
"title": "Please select the skill required",
"type": "multiple_choice",
"ref": "a24e6b58-f388-4ea9-9853-75f69e5ca337",
"allow_multiple_selections": false,
"allow_other_choice": false
}
]
},
"answers": [
{
"type": "text",
"text": "250252",
"field": {
"id": "kUbaN0JdLDz8",
"type": "short_text"
}
},
{
"type": "choice",
"choice": {
"label": "CE"
},
"field": {
"id": "JQD4ksDpjlln",
"type": "multiple_choice"
}
}
]
}
}
目前我的 PHP 文件中有这个:
$data = json_decode(file_get_contents('php://input'));
$ID = $data->{"text"};
$Skill = $data->{"label"};
这不起作用,我得到的都是空的 - 非常感谢任何帮助,谢谢。
您需要查看您正在接收的 JSON 对象,以了解您在使用 json_decode
后接收的对象的结构,您想要获得的是 $data->form_response->answers
, 所以你可以有一个更容易访问的变量:
$answers = $data->form_response->answers;
记住$answers
是一个数组
因此,要实现您想要达到的目标,您可以这样做:
$data = json_decode(file_get_contents('php://input'));
$answers = $data->form_response->answers;
$ID = $answers[0]->text;
$Skill = $answers[1]->choice->label;