“使用Facebook php sdk访问相册/照片时,需要访问令牌来请求此资源”

时间:2010-11-08 05:37:25

标签: oauth facebook facebook-graph-api

我正在使用php sdk访问网站中用户的相册和照片。 我能够登录并能够检索有关相册和照片的所有信息。

但是,我无法在网页上显示这些照片。

当我尝试图API时,获取如下所示的照片/相册:

https://graph.facebook.com/131833353530147/picture

我收到以下错误消息:

{
   "error": {
      "type": "OAuthException",
      "message": "An access token is required to request this resource."
   }
}

但是当我尝试显示我的个人资料照片并且我确实有一个有效的访问令牌时,同样的工作正在进行中。

非常感谢您的帮助。

6 个答案:

答案 0 :(得分:23)

您需要做三件事。

  1. 您需要与这些照片的所有者联系oAuth。 (使用'user_photos'扩展权限)

  2. 您需要访问令牌(在oAuth完成后会在URL框中返回。)

  3. 完成后,您可以访问照片https://graph.facebook.com/me?access_token=ACCESS_TOKEN

  4. 您可以在此处更详细地找到所有信息:http://developers.facebook.com/docs/authentication

答案 1 :(得分:3)

使用有效的用户ID和访问令牌尝试此网址:

https://graph.facebook.com/{userid}/photos?limit=20&access_token={access_token}

答案 2 :(得分:2)

答案 3 :(得分:1)

要获得实际的access_token,您还可以通过以下PHP代码进行编程:

 require 'facebook.php';

 $facebook = new Facebook(array(
   'appId'  => 'YOUR_APP_ID',
   'secret' => 'YOUR_APP_SECRET',
 ));

 // Get User ID
 $user = $facebook->getUser();

 if ($user) {
   try {
     $user_profile = $facebook->api('/me');
     $access_token = $facebook->getAccessToken();
   } catch (FacebookApiException $e) {
     error_log($e);
     $user = null;
   }
 }

答案 4 :(得分:1)

获取访问令牌:facebook Graph API Explorer

您可以自定义特定的访问权限,默认情况下会包含基本权限。

答案 5 :(得分:0)

嗯,您有一个有效的访问令牌来访问您的信息,而不是其他人(这是因为您已登录并且您已授权访问您的信息)。但图片所有者没有做同样的事情(登录+权限),因此您收到了违规错误。

要获得权限,请参阅此link 并确定您希望从任何用户获得哪种信息并确定权限。稍后将其嵌入到您的代码中。 (在登录功能调用中)

由于