2013-06-26 7 views
11

Я пытаюсь использовать API-интерфейс Graph API для создания маркера доступа для моего приложения для просмотра моих страниц с помощью «me/accounts». Однако каждый раз, когда я пытаюсь это сделать, он возвращает мне пустой набор данных. Я выбрал manage_pages как разрешение и все еще не работает. Не проверяя никаких других разрешений, я могу просматривать «me/likes», «me/movies» и т. Д. Я понятия не имею, что я делаю неправильно.API-интерфейс Facebook Graph API

Это то, что я делаю:

https://developers.facebook.com/tools/explorer/

  1. Выберите мое приложение из выпадающего меню.
  2. Нажмите "Получить маркер доступа" >> Проверка "manage_pages" >> Получить маркер доступа
  3. Отправить "GET/меня/счетов"

я получаю:

{ 
    "data": [ 
    ] 
} 

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

UPDATE 6/27/13 Я нашел несколько ресурсов, которые говорят, чтобы включить publish_stream как разрешение, так, что я пытался. Тем не менее успеха нет. Кроме того, кто-то предположил, что это может быть проблемой с ограничениями, но у моего приложения нет ограничений (кроме значения по умолчанию 13+).

+1

И вы подтвердили в [Инструменте отладки Facebook] (https://developers.facebook.com/tools/debug), что маркер доступа, который вы используете, имеет разрешение manage_pages? – Igy

+0

Правильно, я даже добавил лишние разрешения, чтобы увидеть, может быть, они мне нужны. Каждый раз отладчик возвращает, что мой токен доступа действителен и имеет разрешения, которые я выбрал. Тем не менее, я до сих пор не получаю данных. – user1770011

+1

И (и я понимаю, что это глупый вопрос, но это, безусловно, самая вероятная причина) - пользователь, чей токен доступа, который вы используете, на самом деле имеет некоторую страницу, на которой они являются администратором? – Igy

ответ

1

Я не знал, что возможность просмотра моих «страниц» с/me/account требует, чтобы у меня было дополнительное разрешение доступа к странице «admin». Как только владелец приложения предоставил мне его в приложении, я смог увидеть данные в Graph Explorer.

+0

Теперь это называется разрешением 'pages_show_list' – yash

2

У меня была аналогичная проблема. Я также был «Менеджером» для страницы (со страницы admin на странице facebook: «Редактировать страницу»> «Управление ролями администратора»). Недостаточно этого - нужно также убедиться, что используемый токен доступа имеет расширенное разрешение «manage_pages».

Также см. Раздел Facebook documentation (в частности раздел 2).

Screenshot of the graph explorer access token generator

4

У меня была аналогичная проблема. Несколько решений по stackoverflow в основном объяснили проблему отсутствием необходимых разрешений. Проверьте необходимые разрешения с помощью Graph API explorer или documentation (В таблицах есть столбец с разрешениями для каждого поля). Некоторые рекомендации заключались в том, чтобы использовать область действия, чтобы конкретно указать, какие разрешения вам нужны в кнопке входа или при вызове api. Например:

FB.login(function (response) {   
if (response.authResponse) {   
    console.log('Welcome! Fetching your information.... ');   
} else {  
console.log('User cancelled login or did not fully authorize.');   
}   
}, { scope: 'email,publish_stream,user_birthday,user_location' }); 

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

эффективный способ увидеть, если правильные разрешения создаются с помощью кода использовать следующий код:

FB.api({ method: 'fql.query', query: 'SELECT  user_status,friends_status,user_photos,friends_photos,user_location,friends_location FROM  permissions WHERE uid=me()' }, function(resp) {   
for(var key in resp[0]) {   
    if(resp[0][key] === "1")   
     console.log(key+' is granted');   
    else   
     console.log(key+' is not granted');   
}   
}); 

PS: На одном посте я также нашел решение, в котором упоминается, что человек был в состоянии чтобы получить данные после удаления приложения из своей учетной записи Facebook и тестирования, добавив его снова. Также убедитесь, что если вы изменили разрешения на панели управления приложениями, вы выходите из приложения и снова загружаетесь перед тестированием.

Я потратил впустую более 3 часов, пытаясь исправить эту проблему, и документация на facebook не помогла мне, поэтому надеюсь, что это поможет кому-то!

1

У меня также была такая же проблема, когда я фотографировал свои фотографии альбома. решил это, добавив в токен доступа токен «user_status».

6

Также обратите внимание, что есть новое разрешение пользователя, read_insights, которое должно быть включено, в противном случае чтение любого края /insights будет терпеть неудачу без пустого ответа. Permission dialogue with read_insights highlighted