Dropbox API PHP - 通知请求为空

Dropbox API PHP - notification request is empty

我有一个应该很简单的问题要解决,但我不知道出了什么问题。

刚开始一个项目,使用新的 Dropbox API v2 来接收 file/folder 更改的通知。按照 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); 

我认为这是因为 $_POST 仅适用于 application/x-www-form-urlencodedmultipart/form-data Content-Type。 Dropbox webhooks 传送的负载是 application/json.

根据您的 PHP.

版本,您似乎更想使用 $HTTP_RAW_POST_DATA or php://input

您可以获取原始负载,然后json_decode获取结构化信息。