获取" APINotAllowedError"在私有profil上请求媒体时,即使允许所有范围

时间:2014-05-16 17:21:30

标签: php api instagram

我正在使用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));
  }

谢谢!

1 个答案:

答案 0 :(得分:5)

更新:2016年6月1日之后。即使您正在关注/获得该用户的批准,您也无法再通过API访问私人资料。您将收到错误APINotAllowedError。如果您关注的话,只有查看私人资料的方法是使用instagram app或instagram.com。

但如果您的个人资料是私人资料,则可以使用access_token

通过API访问该资料

如果用户是私人用户,则无法访问个人资料。当访问具有无权访问用户的access_token的私有用户时,这是正确的响应

{"meta":{"error_type":"APINotAllowedError","code":400,"error_message":"you cannot view this resource"}}

只有在您使用允许访问用户的用户access_token访问API时,才能获得正确的响应。