通过Instagram API访问公共Instagram内容,而不会使accessestoken失效

时间:2016-12-06 08:31:11

标签: oauth-2.0 instagram access-token instagram-api

我希望显示与特定主题标签相关的Instagram的公开内容(一切正常)但我无法在每次过期时续订access_token

  

("不要认为你的access_token永远有效。" -   https://www.instagram.com/developer/authentication/

手动续订不是一个选项,我必须确保在任何时候都有一个有效的access_token而无需重新进行身份验证。

有任何想法或问题吗? :)

3 个答案:

答案 0 :(得分:7)

我有一个想法,但没有API(和access_token)。您可以使用?__a=1参数向Instagram的网络版发出请求。我不知道它会工作多久,但现在有工作流程:

  1. 例如,您希望以#{1}}标记显示公开内容。
  2. 将其添加到网址并添加GET参数spacehttps://www.instagram.com/explore/tags/space/?__a=1
  3. 发出GET请求。它返回?__a=1,其中包含json(8)和top_posts(18)中的节点。每个节点都有mediaowner,评论和喜欢的数量。但最重要的部分是captionthumbnail_src
  4. display_src对象中有page_info,有助于对结果进行分页。您需要media(例如,end_cursor
  5. J0HWE9rjAAAAF0HWE9qvgAAAFiYA的值添加到网址:https://www.instagram.com/explore/tags/space/?__a=1&max_id=J0HWE9rjAAAAF0HWE9qvgAAAFiYA
  6. 重复3-6以获取具有特定主题标签的最新帖子。

答案 1 :(得分:7)

更新到?__ a = 1 url param。这似乎已停止与用户' / account /?__ a = 1'端点。:(显然仍适用于标签。

答案 2 :(得分:1)

Instagram关闭了他们的公共API。这是PHP中快速而肮脏的解决方法:

<?php
function getPublicInfo($username) {
    $url     = sprintf("https://www.instagram.com/$username");
    $content = file_get_contents($url);
    $content = explode("window._sharedData = ", $content)[1];
    $content = explode(";</script>", $content)[0];
    $data    = json_decode($content, true);
    return $data['entry_data']['ProfilePage'][0];
}

不确定它会工作多久。 Here是Javascript的一个。