Instagram API 没有为沙盒用户找到任何喜欢的帖子

Posted

技术标签:

【中文标题】Instagram API 没有为沙盒用户找到任何喜欢的帖子【英文标题】:Instagram API doesn’t find any liked posts for sandbox users 【发布时间】:2016-02-26 11:51:41 【问题描述】:

我在沙盒模式下使用 Instagram API。我正在尝试使用经过身份验证的访问令牌从 Instagram API 访问用户喜欢的帖子。此用户是我的应用接受的沙盒用户之一,并且喜欢了一些帖子。

如果我用相同的令牌调用其他端点,我会得到一些数据,但访问 /users/self/media/liked 会返回空数据。

我正在使用这个网址:

https://api.instagram.com/v1/users/self/media/liked?access_token=verified access token

这是我收到的结果:

"pagination": , "meta": "code": 200, "data": []

因为它有一个 200 返回码,所以访问令牌是有效的。那么为什么我没有看到任何喜欢的帖子?

【问题讨论】:

坚持了几个小时!不知道我做错了什么。 @alexwlchan,鉴于问题的重要性,非常感谢您改进了所提问题的语言。我确实做了一些我猜你忽略的编辑。感谢您的帮助! 【参考方案1】:

如果仍然得到

"pagination": , "meta": "code": 200, "data": []

其他电话,例如

https://api.instagram.com/v1/users/self/media/recent?access_token=732...

确保调用公共帐户,方法是转到设置->隐私和安全(选项卡)->帐户隐私(部分),取消选中“私人帐户”。 Instagram 最近通过更严格的 API 更改重新定义了隐私。

【讨论】:

【参考方案2】:

如果有人在 6 月 1 日之后遇到此问题,则可以使用 instagram.pixelunion.net 轻松绕过沙盒问题

后来我找到了一个更好用的 services.chrisriversdesign.com/instagram-token/

【讨论】:

我使用了来自 Pixelunion.net 的访问令牌,但它不适用于这个特定问题。 试试我在 EDIT 下添加的那个,这个更好用更多的功能 我不敢相信 Instagram 已将 API 锁定得如此之多,以至于您甚至无法检索已经公开的数据。当然,这种解决方法违背了使用访问令牌的全部目的。但是,第二个站点确实对我有用(即使我无法在不知道秘密的情况下签署请求)。 是的,PixelUnion 非常有限,ChrisRivers 有限制但没有那么多限制,例如,user.data.counts 不会出现 这对于访问基本信息很有用,但如果想尝试获取 public_content(例如获取 LIKED 媒体)不起作用,请帮助我!!!!【参考方案3】:

当您的应用在沙盒模式下运行时,与正常行为相比,它会受到限制。特别是(引自the API docs for the sandbox):

该 API 的行为就好像 Instagram 上的唯一用户是您的沙盒用户,并且发布的唯一媒体是每个用户的最后 20 个媒体。

因此,如果用户喜欢的帖子是由非沙盒用户发布的,那么 API 将无法查看这些帖子。


这是一个场景:

假设:

    假设全世界有 100 个 instagram 用户(我知道的更多,只是为了举例!)。 名为 APP1 的应用已上线且未处于沙盒模式。 名为 APP2 的应用处于沙盒模式[意味着尚未上线!]。 APP2 有 5 个经过验证和注册的沙盒用户

现在,正如 Instagram 文档所说:这将是黑盒流程。

情况 1:: APP1 尝试为沙盒/非沙盒用户接受用户点赞 - 结果:它获取了他们的数据。原因:对于实时应用,应用可见的用户数是 instagram 上可用的用户数。

情况 2:: APP2 尝试接受用户点赞: 对于沙盒用户 - 它只会获取用户注册为此应用程序的沙盒用户的那些数据(喜欢这里)。非沙盒用户的任何其他喜欢都不会在此处显示。 好像存在 5 个用户,如果有任何用户喜欢这 5 个用户的任何内容,它将是可见的。 对于非沙盒用户 - 用户不可见!

我错过了可见性的最后一部分,这需要我进行一些研究和共同关系才能找到。我想可能还有其他开发人员可能不了解文档中沙盒用户的可见性部分。

【讨论】:

谢谢!我被困了一天。我现在唯一的问题是,如果返回的数据仅来自沙箱,Instagram 将如何进行适当的权限审查?例如,如果我是一个单独的开发者,并且我是我的应用沙箱中唯一的人,而你请求我的以下列表,你将什么也看不到! @DanHealy,如果你是独立开发者,那么你只能调用那些只获取你的数据的端点! 另外,@DanHealy,以这种方式查看它,Instagram 沙盒权限审查按以下方式进行 - 只有那些经过验证并在您的应用程序中列出的用户才会对其可见。 [注意:您只能访问沙盒用户在该用户被验证为您的应用程序的沙盒用户后发布的那些数据 - 简单地说,如果我是 instagram api,对于您的沙盒应用程序,我只会获取那些在您注册应用时间之后注册的数据,仅适用于您应用的已验证沙盒用户!休息被忽略!] 希望它有帮助! :) 我的意思是,如果我的应用程序的功能依赖于使用关注/关注数据,如果没有数据可以审查,他们如何“审查”它? 我不确定,很可能它们不会在沙盒模式下运行以供审查。如前所述,他们将为您调用的每个端点检查这三个检查点。最有可能的是,他们对此并不在意。对此我不确定。但从技术上讲,他们会检查您的端点调用!【参考方案4】:

简单的解决方案,就像您自己的一张 instagram 照片一样。这样你的“最近点赞”就会增加另一个沙盒用户(你)的点赞数,并且不会为空。

【讨论】:

也给了你一个很好的理由来喜欢你自己的照片,即使你没有做任何应用程序开发;)

以上是关于Instagram API 没有为沙盒用户找到任何喜欢的帖子的主要内容,如果未能解决你的问题,请参考以下文章

如何成为 Instagram 中任何客户的 Instagram 沙盒用户

Instagram Graph API 有沙盒模式吗?

为沙盒帐户创建立即购买按钮

沙盒中的 OAuthPermissionsException Instagram API

启用 Instagram 聊天 API

从未收到 Instagram 沙盒用户邀请