Загрузка изображения в определенный альбом Facebook - PullRequest
3 голосов
/ 13 февраля 2012

У меня проблемы с использованием разрешений для загрузки в определенный альбом Facebook.

Я настроен администратором на определенную страницу Facebook, однако всякий раз, когда я пытаюсь загрузить фотографию, у меня не получается получить к ней доступ.

Я получаю ошибку:

Неустранимая ошибка: Uncaught OAuthException: (# 120) Неверный идентификатор альбома выброшен

Если я исследую с помощью обозревателя графиков, я могу увидеть этот альбом без маркера доступа.

URL-адрес, который я использую: https://graph.facebook.com/albumId/photos

Альбом, который я пытаюсь загрузить, представляет собой альбом на странице Facebook, который я создал на Facebook.

Права доступа, которые я установил:

  • user_photos
  • friends_photos
  • publish_actions
  • manage_pages
  • publish_stream
  • photo_upload

Любая помощь приветствуется.

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

Сначала проверьте, вошел ли пользователь в систему:

function getLoginStatus() {  
            FB.getLoginStatus(function (response) {
                if (response.status === 'connected') {
                    // the user is logged in and connected to your
                    // app, and response.authResponse supplies
                    // the user's ID, a valid access token, a signed
                    // request, and the time the access token 
                    // and signed request each expire
                    var uid = response.authResponse.userID;
                    var accessToken = response.authResponse.accessToken;

                    getPageAccess();

                } else if (response.status === 'not_authorized') {
                    // the user is logged in to Facebook, 
                    //but not connected to the app
                    logIn();
                } else {
                    // the user isn't even logged in to Facebook.
                    logIn();
                }
            });
        }

Затем получите маркер доступа page , связанный с пользователем:

function getPageAccess() {               
            FB.api('/PAGE_ID?fields=access_token', function (resp) {
                var pageAccessToken = resp.access_token;
            });
        }
1 голос
/ 13 февраля 2012

Это кажется распространенной проблемой. Если вы хотите олицетворять страницу Facebook (то есть выступать в роли самой страницы для загрузки, публикации и обмена), вы должны сначала получить токен доступа для этой страницы:

  1. Выполнить GET-запрос к / me / account с использованием токена доступа пользователя
  2. Зацикливание набора результатов и поиск страницы ( обратите внимание на свойство категории каждого элемента, пропустите «приложение», поскольку оно считается учетной записью)
  3. Хранить access token для этой страницы.

Затем (с использованием PHP SDK):

$page    = '432652662'; // Your page id
$album   = '128949205'; // Your album id
$source  = 'mypic.png'; 
$payload = array('source' => '@' . $source,
    'access_token' => 'page access token');

// Upload photo for specific page and album
$sdk->api("/$page/$album/photos", 'POST', $payload);
0 голосов
/ 13 февраля 2012

Хорошо, я думаю, что нашел решение.

Если вы перейдете на https://graph.facebook.com/me/accounts

Каждая учетная запись будет иметь свой собственный access_token.При загрузке изображения на страницу Facebook вам нужно будет передать этот access_token в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...