首页 > 解决方案 > 使用 PHP 调用公共 Instagram JSON 数据并将它们分配给变量

问题描述

目标:

我的目标是获取 Instagram 帐户最后 3 个帖子的点赞和评论总数,并将它们分配给单独的变量。

问题:

我只能调用最新帖子的总喜欢和评论,我不知道如何调用其他帖子信息。我已经尝试了几个小时。

目标的逻辑解释:

$post1_likes = number of likes from post;
$post1_comments = number of comments from post;

$post2_likes = number of likes from post;
$post2_comments = number of comments from post;

$post3_likes = number of likes from post;
$post3_comments = number of comments from post;

$combine_all = $post1_likes + $post1_comments + $post2_likes + $post2_comments $post3_likes + $post3_comments;

return combine_all;

当前代码:

$raw = file_get_contents('https://www.instagram.com/instagram');

preg_match('/\"edge_media_preview_like\"\:\s?\{\"count\"\:\s?([0-9]+)/',$raw,$m1);

preg_match('/\"edge_media_to_comment\"\:\s?\{\"count\"\:\s?([0-9]+)/',$raw,$m2);

$combine_all = $m2[1] + $m1[1];

return $combine_all;

数据链接:

链接到 json 数据

我是 PHP 新手,非常感谢您的帮助!谢谢

标签: phparraysjson

解决方案


在您获得信息之前,您阅读的 JSON 有相当多的数据层。以下代码应该让您开始了解您需要做的事情......

// Decode the data to a nested associative array
$json = json_decode($raw, true);

// Loop through each of the edges
foreach ( $json['graphql']['user']['edge_felix_video_timeline']['edges'] as $edge ){
    echo $edge['node']['edge_media_to_comment']['count'].'/'
        .$edge['node']['edge_media_preview_like']['count'].PHP_EOL;
}

推荐阅读