【问题标题】:Instagram Latest post API suddenly stopped workingInstagram 最新帖子 API 突然停止工作
【发布时间】:2018-04-08 08:46:06
【问题描述】:

我的 instagram 提要运行良好,但已停止运行。我正在努力寻找解决方案。首先,我假设问题与 SSL 有关,我什至为我的网站获得了 SSL 证书。但似乎不起作用。任何帮助或建议表示赞赏。输出显示在 instagram 上发布的最新图片,现在什么都没有。1

  <div class="col-xs-12 col-sm-6 col-md-5 no-padding">
<div class="insta_img">
  <?php
                $instagram_id = get_field('instagram_id', 'option') ? get_field('instagram_id', 'option') : '';
                $access_token = get_field('instagram_access_token', 'option') ? get_field('instagram_access_token', 'option') : '';
                $url = "https://www.instagram.com/{$instagram_id}/?__a=1";
                curl_close($ch);  
                $ch = curl_init($url);
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                $json = curl_exec($ch);
                curl_close($ch);

                $data = json_decode($json);
                $data = $data->user->media->nodes;

                $text = $data[0]->caption;

                $created_time = $data[0]->date ;

                $images = $data[0]->thumbnail_src;
                /

            ?>
  <img src="<?php echo $images; ?>"  alt="instagram"/>
  <div class="insta_content"><?php echo $text; ?>
    <dt><?php echo date('d/m/Y', $created_time); ?></dt>
  </div>
</div>

【问题讨论】:

  • Instagram 最近由于 Facebook 隐私事件对其 API 进行了一些更改。您可能需要查看他们的新闻或更新日志。
  • @RuChernChong 感谢您的回复。我会看看他们的变更日志。我希望他们能尽快找到解决方案。
  • 您没有使用官方 API。您基本上只是在抓取 URL。所以你不应该依赖这种方法来总是给你一个可预测的结果。另外,你为什么要引用一个你从不使用的访问令牌?
  • @hermanschutte 感谢您的回复。我已经评论了那条线。我正在尝试不同的网址,所以在发帖之前我忘了评论它。正如您提到的,它不是官方 API,我也注意到了,API 是由其他人创建的。有没有办法使用官方 API 从 Instagram 帐户获取最新帖子?
  • @sundasmunir 是的,您正在寻找的端点是这个:https://api.instagram.com/v1/users/self/?access_token=ACCESS-TOKEN。 Instagram API 文档中提供了更多信息:instagram.com/developer/endpoints

标签: json api ssl curl instagram


【解决方案1】:

您没有正确解析响应。例如,在该响应中没有user-&gt;media-&gt;nodes。您需要检查从端点获得的响应,然后正确解析以获取图像:

$access_token = get_field('instagram_access_token', 'option') ? get_field('instagram_access_token', 'option') : '';
$url = "https://api.instagram.com/v1/users/self/media/recent?access_token={$access_token}";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$json = curl_exec($ch);                   
curl_close($ch);

$data = json_decode($json);
$data = $data->data;

$text = $data[0]->caption->text;

$created_time = $data[0]->created_time;

$images = $data[0]->images->standard_resolution->url;

【讨论】:

  • 非常感谢。这解决了我的问题,instagram 最近的帖子显示在网站上。 :)
【解决方案2】:

Instagram 已于 2018 年 4 月 6 日禁用以下功能(即弃用以下 API):

Follower List - 读取关注者和关注的用户列表

关系 - 代表用户关注和取消关注帐户

评论公共内容 - 代表用户在公共媒体上发布和删除 cmets

喜欢 - 代表用户喜欢和不喜欢媒体

订阅 - 在媒体发布时接收通知

用户信息 - 搜索和查看用户的公开内容 通过标签和位置返回的有关公共内容的一些信息 搜索 - 姓名、简历、评论、评论者、关注者数量、关注者数量、 发帖数和头像

【讨论】:

  • 感谢您的回复。所以这意味着我的 Instagram 最新帖子无法获取到我的网站。
  • 这没有回答问题。 Instagram 没有弃用 _self 端点的媒体最近提要。因此,您仍然可以检索自己的最新帖子。
【解决方案3】:

访问令牌工作正常。但该帖子在网站上不可见。我使用的代码如下:

$access_token = get_field('instagram_access_token', 'option') ? get_field('instagram_access_token', 'option') : '';
               $url = "https://api.instagram.com/v1/users/self/?access_token={$access_token}";

                $ch = curl_init($url);
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                $json = curl_exec($ch);                   
                curl_close($ch);

                $data = json_decode($json);
                $data = $data->user->media->nodes;


                $text = $data[0]->caption;

                $created_time = $data[0]->date ;

                $images = $data[0]->thumbnail_src;

【讨论】:

猜你喜欢
  • 2011-11-10
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 2013-02-23
  • 2019-10-06
相关资源
最近更新 更多