【发布时间】:2016-07-26 08:22:38
【问题描述】:
This site I have 正在使用 #embedstagram 来调用我网站上的 instagram 供稿。但它显示“错误:提供的 ACCESS_TOKEN 无效”。昨天(2016 年 6 月 30 日)它仍然运行良好。我知道 IG 已经更改了他们的 API 政策,但我仍然不明白沙盒是如何工作的。
如何解决这个问题?
【问题讨论】:
This site I have 正在使用 #embedstagram 来调用我网站上的 instagram 供稿。但它显示“错误:提供的 ACCESS_TOKEN 无效”。昨天(2016 年 6 月 30 日)它仍然运行良好。我知道 IG 已经更改了他们的 API 政策,但我仍然不明白沙盒是如何工作的。
如何解决这个问题?
【问题讨论】:
在 2015 年 11 月 17 日或之后创建的应用将在 Sandbox Mode 开始,并在新更新的 API rate-limits 和行为上运行。
这是一个功能齐全的环境,可让您在提交应用以供审核之前测试公开可用的 API endpoints。
为了帮助您开发和测试您的应用,沙盒模式下可用的用户和媒体是真实的 Instagram 数据(即通常在 Instagram 应用中可见的数据),但具有以下条件:
要上线并完全访问 Instagram 内容,您需要submit your application for review and approval。审核后,您将只能向用户请求您的应用获得批准的权限范围。
【讨论】:
在我们可以通过并重新验证每个用户之前,我们会直接从 instagram 获取。 这是一个修补程序,不应留在生产环境中
$result = file_get_contents("https://www.instagram.com/[username]/media");
$result = json_decode($result);
<? if ($result !== false): ?>
<? if (!empty($result)): ?>
<? foreach ($result as $post): ?>
<? if(is_array($post)): ?>
<? $count = 1; ?>
<? foreach($post as $data): ?>
<?= $count+1; ?>
<a href="<?= $data->link ?>" target="_blank">
<img="<?= ($data->images->standard_resolution->url) ?>/">
</a>
<? if ($count++ == 4) break; ?>
<? endforeach; ?>
<? endif; ?>
<? endforeach ?>
<? else: ?>
<div>
<p>No instagram posts found!</p>
</div>
<? endif; ?>
<? endif; ?>
网站的 Feed 不必被批准为应用。您只需要重新验证每个提要。他们指定所有旧版应用程序都将恢复到沙盒模式,但没有让所有人都知道身份验证密钥也会过期。
以下是开发文档中的相关信息:
以下是一些不会被批准的场景示例:
显示个人网站的内容。如果您是开发人员并且 您想在网站上展示 Instagram 内容,那么您不会 需要提交您的应用以供审核。通过在沙盒中使用客户端 模式下,您仍然可以访问任何媒体的最后 20 个媒体 授予您权限的沙盒用户。
一次性项目。如果您是建立网站或其他机构的机构 集成,请注意,我们不会向创建的客户端授予权限 对于一次性项目。如果您对构建产品感兴趣, 将用作跨多个服务的平台或小部件 项目,那么您可以提交一个可以使用的 client_id 跨多个项目。
使用小部件。如果您正在为您的网站安装小部件, 那么您无需提交审核。一些小部件可能会问你 创建一个新的客户 ID,但您不需要提交它 检查小部件是否正常工作。您的客户端可以保持沙盒模式 并且该小部件将可以访问您最近的 20 个媒体。
【讨论】: