Instagram API:获取所有用户媒体 API 并存储到文件
Posted
技术标签:
【中文标题】Instagram API:获取所有用户媒体 API 并存储到文件【英文标题】:Instagram API: Get All User Media API and Store to File 【发布时间】:2014-01-10 16:46:47 【问题描述】:我知道通过分页在 instagram api 中获取所有用户媒体的方法。我们必须再次请求提供分页 url 以获取下一张照片。
我只是想知道我是否可以将所有 json api 响应包含在分页中的下一张照片中保存到一个平面文件中以进行缓存。目的是我只能从一个文件中调用所有照片值,例如:cache.json。
如果可能的话,有没有办法在 php 代码中实现这一点?就像使用 file_get 和 file_put 函数一样。非常感谢任何帮助:)
【问题讨论】:
让我们看看你的代码,你尝试了什么? 在请求的末尾加上参数&count=-1
就可以得到完整的图片列表作为一个大文件。
不,使用 params &count=-1 您会丢失许多值,例如将标题值变为 null、注释等。我没试过。我只是有一个想法,可以通过将所有内容存储到一个文件来实现它,如果 Instagram 帐户的任何更新都会触发代码再次获取并存储所有内容。
看看我下面的代码。也许你可以解决它。
新代码已更新。往下看
【参考方案1】:
这是我的代码,但需要进行调整才能修复它。我正在使用这个包装器https://github.com/cosenary/Instagram-PHP-API
require 'instagram.class.php';
$cache = './cache.json';
$instagram = new Instagram($accessToken);
$instagram->setAccessToken($accessToken);
$response = $instagram->getUserMedia($userID,$settings['count']);
do
if($response)
file_put_contents($cache,json_encode($response)); //Save as json
while ($response = $instagram->pagination($response));
echo 'finish';
使用此代码,我只能获得最后一个分页。似乎代码覆盖了 cache.json 文件,而不是添加。 也许您可以建议我如何将其修复为添加,而不是覆盖。
-- 编辑--
我的代码现在可以运行但并不完美,也许你可以尝试修复它。
<?php
include('conf.php');
require 'instagram.class.php';
$cache = './cache_coba.json';
$instagram = new Instagram($accessToken);
$instagram->setAccessToken($accessToken);
$response = $instagram->getUserMedia($userID,$settings['count']);
while ($response = $instagram->pagination($response))
if($response)
$opn = file_get_contents($cache);
$opn .= json_encode($response);
file_put_contents($cache, $opn);
echo 'finish';
?>
【讨论】:
以上是关于Instagram API:获取所有用户媒体 API 并存储到文件的主要内容,如果未能解决你的问题,请参考以下文章