Zapier REST订阅挂钩无法在Php中解析[重复]
Posted
技术标签:
【中文标题】Zapier REST订阅挂钩无法在Php中解析[重复]【英文标题】:Zapier REST Subscribe Hook Cannot Be Parsed In Php [duplicate] 【发布时间】:2020-01-07 20:13:36 【问题描述】:我正在设置一个 Zapier 订阅钩子,这是它生成的代码供我测试...
const options =
url: 'https://www.my-web-site-url.com/zapier/api/subscribe/hook',
method: 'POST',
headers:
'Content-Type': 'application/json',
'X-API-KEY': bundle.authData.api_key,
'Accept': 'application/json'
,
params:
'api_key': bundle.authData.api_key
,
body:
'helloWorld': '123123',
'hookUrl': bundle.targetUrl
return z.request(options)
.then((response) =>
response.throwForStatus();
const results = z.JSON.parse(response.content);
return results;
);
当我在 Zapier 中运行测试时,它成功发布到我的 php 脚本,但是当我尝试解析我的 PHP 脚本中的主体变量:“hookUrl”或“helloWorld”时,我只是空白(什么都没有) .
这是我的简单 PHP 代码:
echo $_POST['helloWorld'];
我做错了什么,因为我不明白为什么 $_POST['helloWorld'] 不会呈现“123123”而不是“”。
【问题讨论】:
您的 POST 请求正在发送 JSON,因此您需要对其进行解码 【参考方案1】:$_POST
数组仅用于内容类型为 application/x-www-form-urlencoded
或 multipart/form-data
的 HTTP-POST 请求。 [1]
我建议获取作为 json 编码字符串的请求正文并将其解码为数组。 [2]
$postdata = file_get_contents("php://input");
$request = json_decode($postdata, 1);
echo $request['helloWorld'];
【讨论】:
我也试过了,没有这样的运气。不过我不明白,内容类型不是“application/x-www-form-urlencoded”,而是“application/json” 所以这一定是 Zapier 的问题......今天早上,这一切都刚刚开始神奇地工作,我的代码没有任何改变。 #奇怪以上是关于Zapier REST订阅挂钩无法在Php中解析[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Zapier zap开启时如何触发我的subscribeHook
使用 .Net WebHooks 作为 RESThooks 连接到 Zapier