Instagram实时API - PHP - 无法获得POST更新

时间:2012-10-12 12:36:52

标签: php api post instagram

我正在尝试连接instagram API,连接正常,我收到的更新正如API文档中所述,问题是我无法访问数据发送到我的回调函数。

根据doc

  

当有人发布新照片并触发其中一个订阅的更新时,我们会对您在订阅中定义的回调网址发出POST请求

这是我的代码:

// check if we have a security challenge
if (isset ($_GET['hub_challenge']))
            echo $_GET['hub_challenge'];  
    else // This is an update
    {
        // read  the content of $_POST
        $myString = file_get_contents('php://input');
        $answer = json_decode($myString);

        // This is not working  starting from here
        $id = $answer->{'object_id'};
        $api = 'https://api.instagram.com/v1/locations/'.$id.'/media/recent?client_secret='.INSTA_CLI_SECRET.'&client_id='.INSTA_CLI_ID;

        $response = get_curl($api); //change request path to pull different photos
        $images = array();

        if($response){
        $decode = json_decode($response);
        foreach($decode->{'data'} as $item){
             // do something with the data here
             }
        }
    }

显示$ myString变量我有这个结果,不知道为什么它没有被解码为json :(

  

[{“changed_aspect”:“media”,“subscription_id”:2468174,“object”:   “geography”,“object_id”:“1518250”,“time”:1350044500}]

当我对我的$ id进行硬编码时,get_curl函数正常工作。

我想我的$ myString有问题,遗憾的是$ _POST cvariable没有填充,不知道我错过了什么?

1 个答案:

答案 0 :(得分:1)

查看问题中包含的示例JSON响应,我可以得出结论,您尝试与之对话的对象被包装在一个数组中(因此在JSON字符串中围绕它的[和])。

您应该使用$answers[0]->object_id访问它。 如果这不起作用,您可以随时使用var_dump检查其中一个变量中的数据。