【问题标题】:Instagram API: Get All User Media API and Store to FileInstagram API:获取所有用户媒体 API 并存储到文件
【发布时间】: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 帐户的任何更新都会触发代码再次获取并存储所有内容。
  • 看看我下面的代码。也许你可以解决它。
  • 新代码已更新。往下看

标签: php json pagination 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';
?>

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多