使用 Facebook php sdk 访问相册/照片时,“请求此资源需要访问令牌”
Posted
技术标签:
【中文标题】使用 Facebook php sdk 访问相册/照片时,“请求此资源需要访问令牌”【英文标题】:"An access token is required to request this resource" while accessing an album / photo with Facebook php sdk 【发布时间】:2011-05-06 12:17:16 【问题描述】:我正在使用 php sdk 访问网站中用户的相册和照片。 我可以登录,还可以检索有关相册和照片的所有信息。
但是,我无法在网页上显示这些照片。
当我尝试图形 API 时,得到如下照片/相册:
https://graph.facebook.com/131833353530147/picture
我收到以下错误消息:
"error":
"type": "OAuthException",
"message": "An access token is required to request this resource."
但是当我尝试显示我的个人资料图片并且我确实有一个有效的访问令牌时,同样的工作。
我们将不胜感激。
【问题讨论】:
【参考方案1】:使用有效的用户 ID 和访问令牌尝试此网址:
https://graph.facebook.com/userid/photos?limit=20&access_token=access_token
【讨论】:
【参考方案2】:要获得实际的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;
【讨论】:
我不明白的是我是从一个网站上打电话的。也就是说,我不是一个请求查看照片权限的应用,我是一个没有 YOUR_APP_ID 的网站。 在哪里下载 facebook.php ? 上面的代码其实是一些应用生成器生成的。但是当你下载 Facebook 开发者 SDK 时,你可以得到很多类似的示例:developers.facebook.com/docs/php/gettingstarted【参考方案3】:获取访问令牌:facebook Graph API Explorer
您可以自定义特定的访问权限,默认包含基本权限。
【讨论】:
【参考方案4】:登录您的 Facebook。
转到http://graph.facebook.com
您会发现所有提要及其相应的访问代码。例如https://graph.facebook.com/me/home?access_token=2227470867|2.AQAQ6FqN8IW-PUrR.3600.1309471200.0-137977022924629|0sbmdhJN6o9y9J4GDWs8xEygyX8
享受吧!
【讨论】:
访问令牌不是永久的。它需要正确初始化。此技巧对测试很有用,但不应在应用程序中实现。【参考方案5】:你需要三样东西。
您需要与这些照片的所有者进行 oAuth。 (具有“user_photos”扩展权限)
您需要访问令牌(在 oAuth 完成后,您会在 URL 框中返回该令牌。)
完成后,您可以像这样访问照片https://graph.facebook.com/me?access_token=ACCESS_TOKEN
您可以在此处找到所有详细信息:http://developers.facebook.com/docs/authentication
【讨论】:
这是我的答案,事实证明,Graph API Explorer 顶部的 Access Token 框纯粹是为了装饰,与您在下面编写的查询无关。 1/10 不会再使用这样的 UI 我面对 (#210) 请求此资源需要页面访问令牌。当我想获得页面评分时出现此错误【参考方案6】:嗯,您有一个有效的访问令牌来访问您的信息,而不是其他人(这是因为您已登录并且您已授予访问您的信息的权限)。但是图片所有者没有做同样的事情(登录+权限),所以你得到了一个违规错误。
要获得权限,请参阅此link 并决定您希望从任何用户那里获得什么样的信息并决定权限。稍后将其嵌入您的代码中。 (在登录函数调用中)
谢谢
【讨论】:
以上是关于使用 Facebook php sdk 访问相册/照片时,“请求此资源需要访问令牌”的主要内容,如果未能解决你的问题,请参考以下文章
使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册
如何使用 Facebook PHP SDK 3.0 正确处理会话和访问令牌?