我应该解决一个非常简单的问题,但我无法弄清楚出了什么问题。
刚刚启动了一个项目,使用新的Dropbox API v2接收文件/文件夹更改的通知。按照提供的documentation中提供的步骤进行操作,但我马上就遇到了问题。
我已经验证了webhook,每次更改文件时我都会收到来自Dropbox的POST请求,但POST请求只包含一个空数组。代码很简单,因为我刚开始这个项目:
// USED for initial verification
/*
$challenge = $_GET['challenge'];
echo $challenge;
*/
$postData = $_POST;
$post_dump = print_r($postData, TRUE);
$fpost = fopen('postTester.txt', 'w');
fwrite($fpost, $post_dump);
fclose($fpost);
$postData
是一个包含sizeOf()
0
的空数组。
有什么想法吗?
以下是解决方案的更新代码。非常简单的修复。
$postData = file_get_contents("php://input");
$post_dump = print_r($postData, TRUE);
$fpost = fopen('postTester.txt', 'w');
fwrite($fpost, $post_dump);
fclose($fpost);
答案 0 :(得分:2)
我认为这是因为$_POST
仅适用于application/x-www-form-urlencoded
或multipart/form-data
Content-Type
。 Dropbox webhooks提供的有效负载为application/json
。
看起来您会想要使用$HTTP_RAW_POST_DATA
或php://input
,具体取决于您的PHP版本。
您可以获取原始有效负载,然后json_decode
获取结构化信息。