我正在使用PHP Instagram API https://github.com/cosenary/Instagram-PHP-API
我想检索用户的Feed,即使他有私人的个人资料。
首先,我生成了所有授予范围的网址
$instagram->getLoginUrl(array('basic','likes', 'relationships', 'comments'));
然后,一旦用户批准了该应用程序,我就会尝试检索他的提要
// Grab OAuth callback code
$code = $_GET['code'];
$data = $instagram->getOAuthToken($code);
// Set token
$instagram->setAccessToken($data->access_token);
// get medias
$medias = $instagram->getUserMedia($data->user->id, -1);
我收到了APINotAllowedError错误
object(stdClass)#5 (1) {
["meta"]=>
object(stdClass)#6 (3) {
["error_type"]=>
string(18) "APINotAllowedError"
["code"]=>
int(400)
["error_message"]=>
string(29) "you cannot view this resource"
}
}
我做错了什么?非常感谢你!
更新和修复
好吧实际上它来自PHP库,当前的getUserMedia()失败了,因为它没有使用提供的access_token ......
这是正确的方法
public function getUserMedia($id = 'self', $limit = 0) {
return $this->_makeCall('users/' . $id . '/media/recent', true, array('count' => $limit));
}
谢谢!
答案 0 :(得分:5)
更新:2016年6月1日之后。即使您正在关注/获得该用户的批准,您也无法再通过API访问私人资料。您将收到错误APINotAllowedError
。如果您关注的话,只有查看私人资料的方法是使用instagram app或instagram.com。
但如果您的个人资料是私人资料,则可以使用access_token
如果用户是私人用户,则无法访问个人资料。当访问具有无权访问用户的access_token的私有用户时,这是正确的响应
{"meta":{"error_type":"APINotAllowedError","code":400,"error_message":"you cannot view this resource"}}
只有在您使用允许访问用户的用户access_token访问API时,才能获得正确的响应。