用图api获取照片

时间:2011-09-29 17:50:32

标签: facebook facebook-graph-api facebook-php-sdk

我在这里阅读了很多关于此的教程/文章/问题,并尝试在fb文档中找到有用的东西。

到目前为止,我自己没有取得任何进展,所以任何输入都会受到高度赞赏,我只是想尝试访问我的照片列表,但我得到的只是一个空数组。

我知道我添加了比我需要的更多req_perms,我只是复制了那些对我来说不起作用的“工作教程”,并且在阅读了一个帖子之后我还添加了user_photo_video_tags因为这对于该线程有效海报(再次,不是我)。

我已经通过对话框允许照片与我的应用共享我的照片,登录工作没有任何问题,我获得的访问令牌似乎是正确的,登录后我访问过:

https://graph.facebook.com/me/photos?access_token=和令牌,并得到一个空数组,如果我没有登录或access_token没有链接到我的应用程序会有一些错误,但我得到的是一个空数组。

提前感谢任何输入。

感谢Chaney Blu,我能够验证我的权限:

{
   "data": [
      {
         "installed": 1,
         "status_update": 1,
         "photo_upload": 1,
         "video_upload": 1,
         "create_note": 1,
         "share_item": 1,
         "publish_stream": 1
      }
   ]
}

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
require_once 'library/facebook.php';

$app_id = "xxxxxxxxxxxxxxxx";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";

$facebook = new Facebook(array(
    'appId' => $app_id,
    'secret' => $app_secret,
    'cookie' => true
));

$loginLink = $facebook->getLoginUrl(array(
    'scope' => 'user_status,publish_stream,user_photos,user_photo_video_tags'
));
$logOutLink = $facebook->getLogoutUrl();

$user = $facebook->getUser();

if ($user) {
    try {
        // User logged in, get token
        $token = $facebook->getAccessToken();
        //var_dump($token); dumped successfully
        // Get public profile info
        $user_profile = $facebook->api('/me');
        //var_dump($user_profile); dumped successfully
        $photos = $facebook->api('/me/photos?access_token=' . $token);
        var_dump($photos); // Empty array, BAH!
    } catch (FacebookApiException $e) {
        $user = null;
    }
}

?>
<a href="<?php echo $loginLink; ?>">Click here to login if you aren't autoredirected</a><br /><br /><br />
<a href="<?php echo $loginLink; ?>">Click here to logout</a>

2 个答案:

答案 0 :(得分:3)

不确定这是否是问题,但试试这个。看来你正在使用最新的PHP SDK。在你的getLoginUrl();调用,尝试将'req_perms'更改为'scope'。

像这样:

$loginLink = $facebook->getLoginUrl(array(
    'scope' => 'user_status,publish_stream,user_photos,user_photo_video_tags'
));

您可以访问https://graph.facebook.com/me/permissions/?access_token=XXXX

来验证您是否授权了正确的权限

答案 1 :(得分:2)

在测试了一些其他权限后,我注意到Facebook没有更新我的令牌的权限,即使退出应用程序,再次登录并接受新权限时,我看到我从Chaney获得的Graph权限链接时没有任何变化蓝光。

我使用该链接验证来自facebooks graph api page http://developers.facebook.com/docs/reference/api/的令牌,并注意到令牌可以访问user_photos但不能访问我的令牌。

进入我的脸书设置并删除应用程序,Facebook下次登录应用时更新了我的权限。

感谢Chaney Blu让我走上正轨。如果我有名声,会投票给你。