【问题标题】:Instagram API getTagMedia with SandboxInstagram API getTagMedia 与沙盒
【发布时间】:2016-04-15 17:47:42
【问题描述】:

这是我第一次使用 Instagram API,但遇到了一些问题。我不确定我是否做错了什么,或者是否与 Instagram 的更改有关。简而言之,我只是想在 Instagram 中查询给定标签的所有图片。

我已经设置了一个 API 客户端,它目前在沙盒中。我正在使用 Cosenary 的 PHP API,它可以在下面的 URL 中找到。顺便问一下,有没有官方的 PHP API 包装器?无论如何,据我所知,我已经正确设置了所有内容,从示例中进行常规查询效果很好,但是尝试按标签获取图片会返回此错误:

“此请求需要 scope=public_content,但此访问令牌未获得此范围的授权。用户必须使用 scope=public_content 重新授权您的应用才能获得此权限。”

好吧,它在沙盒中,所以我不能授予任何权限……但真正让我困惑的是,API 文档指出,当抓取沙盒中的标签时,它将返回来自授权用户的 20 张图像带有该标签的照片,但它不适合我。我的用户已获得授权,并且其中有带有该标签的照片...

文档说:“作为另一个示例,让我们考虑一个返回媒体列表的端点:/tags/{tag-name}/media/recent。此端点返回的响应将仅包含带有给定标签,正如预期的那样。但它不会返回来自任何公共 Instagram 用户的媒体,而是只返回属于您的沙盒用户的媒体,每个用户仅限于最后 20 个。”

PHP API 包装器:https://github.com/cosenary/Instagram-PHP-API

谢谢

【问题讨论】:

    标签: api instagram sandbox


    【解决方案1】:

    在他们的docs 中提到,您需要public_content 的范围才能在Tags Endpoint 调用api。

    所以你得到的错误

    “此请求需要 scope=public_content,但此访问令牌未获得此范围的授权。用户必须使用 scope=public_content 重新授权您的应用程序才能获得此权限。”

    这是因为您在验证用户时没有添加“public_content”范围。

    我检查了您的代码中的link。在您的范围数组中,您拥有以下权限:

    private $_scopes = array('basic', 'likes', 'comments', 'relationships');
    

    在您的范围数组中将范围添加为“public_content”将解决问题

    【讨论】:

    • Instagram doc的基础上,需要像http://api.instagram.com/v1/user/user_id/media/recent/?access_token=YOUR_TOKEN&scope=basic+likes+comments+relationships一样添加范围
    • 我已将public_content 添加到该数组中。我已经退出了 Instagram,清除了缓存,甚至尝试过隐身。还是不行。
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多