2014-01-21 2 views
0

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

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

Это не отображается в моих событиях/возможно (когда я нажимал «возможно»), и когда я пытаюсь получить к нему доступ по идентификатору (graph.facebook.com/id), появляется сообщение об ошибке «Неподдерживаемый запрос на получение . ".

Я пробовал:

  • RestFB (Java) - это моя цель
  • PHP SDK
  • JavaScript SDK

Могу ли я сделать что-то еще, за исключением использования FQL? Я читал об этом, и я хочу использовать простой запрос для получения события, как указано на этой странице: https://developers.facebook.com/docs/graph-api/reference/event/.

Я могу прикрепить код, если это поможет. Большое спасибо, чтобы посмотреть на это.

EDIT: Java код:

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN); 
    String attending = facebookClient.fetchObject("{event-id}/attending", String.class); 
    System.out.println("Attending: " + attending); 

Он работает как шарм с одним событием, но не удается (вернуть пустой массив данных) на другое событие (я был приглашен на оба).

JavaScript код:

FB.api(
    'https://graph.facebook.com/{event-id}', 
    'get', 
    null, 
    function(response) { 
    if (!response) { 
     alert('Error occurred.'); 
    } else if (response.error) { 
     document.getElementById('result').innerHTML = 
     'Error: ' + response.error.message; 
    } else { 
     alert('test'); 
     response['data'].forEach(function(entry) { 
      alert(entry['object']['name']) ; 
     }); 
    } 
    } 
); 

Не возвращает ошибку, но ответ [ «данные»] массив пуст, в то время как в другом случае содержит данные правильно.

EDIT 2: Кроме того, я попробовал FQL с restFB. Это аналогично не работает - следующий код возвращает только одно событие, например, http-запросы.

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN); 

    String query = "SELECT name, eid FROM event where eid = {event1-id} OR eid = {event2-id}"; 
    List<FqlUser> event = facebookClient.executeFqlQuery(query, FqlUser.class); 

    System.out.println("Events: " + event); 
+1

Пожалуйста, всегда сообщайте вам код. Это говорит нам, что вы пробовали до сих пор.Кроме того, это место полно Geeks (включая меня), и код помогает нам лучше понять вашу проблему. –

+0

Чтобы быть уверенным, второе событие, которое вы хотите получить через API, вы приглашаете к нему (потому что его «приглашают только»)? Потому что, если вы не у вас просто нет разрешения «видеть» это ... – Tobi

+0

Я написал: «Меня пригласили в оба». И да, я все еще приглашен на это. Я вижу это обычным способом. Последний вывод очевиден :) – Line

ответ

0

Кажется работы, как ожидается, в настоящее время. Я думаю, что это была ошибка в самой facebook.

0

Вы можете написать FQL запрос для всех событий, давших (не снижение) обратной связи Rsvp для:

select eid, uid, rsvp_status from event_member where uid=me() 

Если вы хотите увидеть в соответствии данных событий, используйте:

select eid, name, description, start_time, venue, location, creator, host from event where eid in (select eid from event_member where uid=me()) 

Пожалуйста, обратите внимание, что написано о правах доступа к таблице событий в документации: https://developers.facebook.com/docs/reference/fql/event/#permissions

Вы должны быть в состоянии запросить FQL через JS SDK, как это:

FB.api(
    'https://graph.facebook.com/fql?q=' + encodeURIComponent("select eid, name, description, start_time, venue, location, creator, host from event where eid in (select eid from event_member where uid=me())"), 
    'get', 
    ...); 
+0

Я знаю, что могу это сделать. Но я писал в вопросе: «кроме использования FQL». – Line

+0

Извините, я действительно этого не видел ... Я обновил свой ответ, чтобы показать, как запросить FQL через JS SDK. – Tobi

+0

Вы проверили этот код? Я скопировал и вставил его и получил ошибку: «Ошибка: (# 601) Ошибка Parser: неожиданный« + »в позиции 6.». Когда я изменил + на белые пробелы, я получаю сообщение «Ошибка: (# 601) Ошибка Parser: неожиданный конец запроса». Когда я меняю запрос на «select eid, name, description, start_time, место, место, создатель, хозяин из события, где eid =« {event-id} »« (потому что я знаю ID, как я упоминал), я получаю: «Ошибка : Ваше заявление не индексируется. Предложение WHERE должно содержать индексный столбец. Такие столбцы помечены * в таблицах, связанных с http://developers.facebook.com/docs/reference/fql ". – Line

Смежные вопросы