Получить фотографии с графиком API - PullRequest
5 голосов
/ 29 сентября 2011

Я прочитал много уроков / статей / вопросов здесь об этом, а также пытался найти что-то полезное в документации fb.

До сих пор я вообще ничего не делал, такЛюбая информация будет принята с благодарностью, я просто пытаюсь получить доступ к списку своих фотографий, но все, что я получаю, это пустой массив.

Я знаю, что я добавил больше req_perms, чем мне нужно, вероятно, я просто скопировалте из "рабочего руководства", которые не работали для меня, и после прочтения темы здесь я также добавил user_photo_video_tags, потому что это сработало для постера темы (опять же, не для меня).

Я получилдиалоговое окно, позволяющее фотографиям делиться моими фотографиями с моим приложением, вход в систему работает без проблем, токен доступа, который я получаю, кажется правильным, после входа в систему я посетил:

https://graph.facebook.com/me/photos?access_token= и токен,и получил пустой массив, если бы я не вошел в систему или access_token не был связан с моим приложением, возникла бы какая-то ошибка, но я получил только пустой массив.

Заранее спасибодля любого ввода.

Благодаря Чейни Блу я смог подтвердить свои разрешения:

{
   "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 ]

3 голосов
/ 29 сентября 2011

Не уверен, что это проблема, но попробуйте это.Похоже, вы используете последнюю версию 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

.
2 голосов
/ 30 сентября 2011

После тестирования некоторых других разрешений я заметил, что Facebook не обновлял разрешения для моего токена, даже при выходе из приложения, повторном входе в систему и принятии новых разрешений ничего не изменилось, когда я посмотрел на ссылку «Разрешения графика», которую получил от Чейни. Blu.

Я использовал эту ссылку для проверки токена со страницы API Graphs Facebook http://developers.facebook.com/docs/reference/api/ и заметил, что токен имеет доступ к user_photos, но не к моему токену.

Зайдя в настройки Facebook и удалив приложение, Facebook обновил мои разрешения при следующем входе в приложение.

Спасибо Чейни Блу за то, что поставили меня на правильный путь. Проголосовал бы я, если бы у меня была репутация.

...