在网站上显示 Instagram 关注者的数量

Posted

技术标签:

【中文标题】在网站上显示 Instagram 关注者的数量【英文标题】:show amount of Instagram followers on website 【发布时间】:2021-11-29 14:23:34 【问题描述】:

似乎 Instagram 改变了某些事情,因为我在我的 html 网站上尝试了几个代码来在按钮上显示 Instagram 关注者的数量,但没有任何效果。

我试过了:

<?php
$account='XXX';
$instagramsource=file_get_contents('https://instagram.com/' . $account);
preg_match_all('/"userInteractionCount":"(.*?)"/', $instagramsource, $count);
$followcount=$count[1][0];
echo "$account instagram account has $followcount followers";
?>

还有这个

<?php
$otherPage = 'XXX';
$response = file_get_contents("https://www.instagram.com/$otherPage/?__a=1");
if ($response !== false) 
$data = json_decode($response, true);
if ($data !== null) 
    $follows = $data['graphql']['user']['edge_follow']['count'];
    $followedBy = $data['graphql']['user']['edge_followed_by']['count'];
    echo $follows . ' and ' . $followedBy;


?>

还有这个……

<?php
$url = "https://www.instagram.com/XXX";
$json = file_get_contents($url);
$obj = json_decode($json, true);
$content = $obj['query']['results']['script']['content'];
$content = str_replace("window._sharedData =", "", $content);
$content = str_replace(";", "", $content);
$content = trim($content);
$json = json_decode($content);
$instagram_follower_count = $json->entry_data->ProfilePage0->user->followed_by->count;
?>

最后是这个:

<?php
$username = 'XXX';
$response = @file_get_contents( "https://www.instagram.com/$username/?__a=1" );
if ( $response !== false ) 
$data = json_decode( $response, true );
if ( $data !== null ) 
    $follows = $data['graphql']['user']['edge_follow']['count'];
    $followedBy  = $data['graphql']['user']['edge_followed_by']['count'];
    echo 'XXX follows:' . $follows . ' and is followed by: ' . $followedBy;


?>                                                      

没有任何作用。 谁能指出 2021 年会发生什么? 谢谢。

【问题讨论】:

【参考方案1】:

这是因为 url https://www.instagram.com/$username/?__a=1 正在重定向到登录页面并给你一个 html 响应

您可以通过echo $response查看

这些帖子将对您有所帮助link1,link2

【讨论】:

请问这将如何工作?那么代码是什么样子的呢? 查看已编辑的帖子 谢谢,Dhruv,但是这些帖子对我来说太技术性了,我只是一个新手。 Instagram 似乎最近发生了一些变化,所以大多数脚本都不起作用,所以我正在寻找一个我可以轻松配置自己的脚本。谢谢。【参考方案2】:

Instagram 自 2018 年 4 月 12 日起通过 __a=1 参数阻止访问。 __a=1 必须替换为 JS 和 Ajax 绕过。我一直在寻找替代解决方案。您可以在 php.ini 中使用 javascript 代码。例如:

async function instagramFollowers () 
    
    const followers = []
    
    try 
        const userInfoSource = await Axios.get('https://www.instagram.com/123/')

        
        const jsonObject = userInfoSource.data.match(/<script type="text\/javascript">window\._sharedData = (.*)<\/script>/)[1].slice(0, -1)

        const userInfo = JSON.parse(jsonObject)
       
        const mediaArray = userInfo.entry_data.ProfilePage[0].graphql.user.edge_owner_to_timeline_media.edges.splice(0, 10)
        for (let media of mediaArray) 
            const node = media.node
            
            followers.push(node.thumbnail_src)
        
     catch (e) 
        console.error('Unable to retrieve Followers. Reason: ' + e.toString())
    
    
    return followers

其他有用的链接:how to write javascript code inside php

https://code.tutsplus.com/tutorials/how-to-use-ajax-in-php-and-jquery--cms-32494

【讨论】:

感谢您的代码。我把它放在 之间,我将 url 中的 123 更改为我的用户名,但它似乎不起作用。 错误信息是什么? 页面不再加载。在页面构建器中显示“意外的 T_function” 嘿雾,请问有解决这个错误的方法吗?

以上是关于在网站上显示 Instagram 关注者的数量的主要内容,如果未能解决你的问题,请参考以下文章

获取关注者数量 Instagram

Instagram API 访问限制

用于取消关注 instagram 取消关注者的 cURL 代码

如何使用 Instagram API 获取我的关注者的关注者列表

Instagram Graph API,获取关注者的关注者

如何在我的网站上显示我的 Instagram 提要?