从 PHP 中的帖子获取 Instagram 订阅 JSON 数据

问题描述 投票:0回答:3

Instagram API 的整个订阅过程似乎并不那么简单。

我设置了一些代码,用于接收当 Instagram 向我发送来自我的订阅之一的帖子通知时发送的帖子数据。然而,当我尝试查看数据(原始 JSON)时,它发布了我无法获取的信息。如果我

print_r
var_dump
我只会得到数字 1。

请参阅我的访问数据的代码:

    // Catches realtime updates from Instagram
if ($_SERVER['REQUEST_METHOD']==='POST') {
     // Retrieves the POST data from Instagram
    $update = file_get_contents('php://input');
    $data = json_decode($update);

    var_dump($data); //Outputs 1
    print_r($data[0]); //Outputs 1

}   

如何以数组形式获取 JSON?

JSON 应该是这样的:

[
    {
        "subscription_id": "1",
        "object": "user",
        "object_id": "1234",
        "changed_aspect": "media",
        "time": 1297286541
    },
    {
        "subscription_id": "2",
        "object": "tag",
        "object_id": "nofilter",
        "changed_aspect": "media",
        "time": 1297286541
    },
    ...
]

感谢您的帮助。

更新1

我使用 PHP 来打印 HTTP 标头。有内容是因为它显示了它的长度。但仍然无法得到它。我认为这排除了 Instagram 问题

php json instagram instagram-api
3个回答
1
投票

如果您使用 PHP,我想访问输入数据的最简单方法是使用

$_GET
$_POST
超全局变量。在这种情况下,尝试
var_dump($_POST)
看看你会得到什么。

如果您从

$_POST
获取了一些内容,您可以使用
json_decode
将 JSON 解码为数组。

您还可以尝试 Instagram API 的一些 PHP 实现,例如:https://github.com/mauenca/Instagram-PHP-API它将满足您所需的工作。


1
投票

Woop 发现了问题并解决了。调试并不容易,因为所有这一切都是在 Instagram 访问您的页面时发生的,因此您实际上看不到输出。

我需要做的是创建一个 foreach 循环来运行解码后的 JSON。经过大量调试和绞尽脑汁后,JSON 不为空,它只是以 JSON 数组开头。

无论如何,现在的代码有效

// Catches realtime updates from Instagram
    if ($_SERVER['REQUEST_METHOD']==='POST') {
         // Retrieves the POST data from Instagram
        $update = file_get_contents('php://input');
        $data = json_decode($update);

        foreach($data as $k => $v) // can be multiple updates per call
        {
            $sub_id = $v->subscription_id; //Contains the JSON values
            $user = $v->object_id;
        }
     }

如果您想查看 $sub_id 的输出,例如,我建议您将其记录下来或通过电子邮件发送给自己。


0
投票

{ "title": "更多❤️", “描述”: ””, “访问”:“受保护”, “日期”: { "时间戳": "1616018239", “格式化”:“UTC 时间 2021 年 3 月 17 日晚上 9:57:19” }, “地点”: ””, “地理数据”:{ “纬度”:0.0, “经度”:0.0, “海拔高度”:0.0, “纬度跨度”:0.0, “经度跨度”:0.0 } }

© www.soinside.com 2019 - 2024. All rights reserved.