我正在使用Instagram实时API获取标签的最近照片。我可以订阅,它返回以下数据:
{
"meta": {
"code": 200
},
"data": {
"object": "tag",
"object_id": "india",
"aspect": "media",
"callback_url": "http://test.com/myapp/callback.php",
"type": "subscription",
"id": "18436080"
}
}
用户上传新照片时不发送数据。这是我的回调url代码:
<?php
$challenge = $_GET['hub_challenge'];
if($challenge) {
echo $challenge;
} else {
sleep(2);
$myString = file_get_contents('php://input');
$jsonArray = json_decode($myString);
var_dump($jsonArray);
}
?>
如何调试调用是否已经来到我的回调url。
检查X-Hub-Signature
标头是否存在签名
$_SERVER['HTTP_X_HUB_SIGNATURE']
这将是一个sha -1签名的十六进制摘要,使用您的客户端秘密作为密钥,有效负载作为消息。
首先,删除对
的调用sleep(2);
它将超时post请求,文档在这里说:
此外,您应该在2秒超时内确认POST——如果您需要对接收到的信息进行更多处理,您可以在异步任务中这样做。
其次,挑战变量的名称是hub。Challenge而不是hub_challenge,也可以查看