Получение событий Facebook с помощью FQL (проблема с разрешениями)

Я пытаюсь получить все события facebook, на которые была приглашена созданная мной страница. Я создал приложение, и следующий код я получил от http://www.codeofaninja.com/2011/07/display-facebook-events-to-your-website.html:


    //requiring FB PHP SDK
    require 'fb-sdk/src/facebook.php';

    //initializing keys
    $facebook = new Facebook(array(
        'appId'  => '[app_id>],
        'secret' => '[app_secret]',
        'cookie' => true, // enable optional cookie support
    ));

    $fql    =   "SELECT name, pic, start_time, end_time, location, description 
                FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = 100001660923071 ) 
                ORDER BY start_time asc";
    $param  =   array(
    'method'    => 'fql.query',
    'query'     => $fql,
    'callback'  => ''
    );

    $fqlResult   =   $facebook->api($param);

    print_r($fqlResult);

Теперь проблема в том, что он отлично работает, когда uid в запросе установлен на '221167777906963' (это UID из примера кода, и он работает с любой комбинацией app-id / secret), но когда я установил его на uid страница Я являюсь владельцем ни одно из событий не возвращается. Что-то мне не хватает? Я дважды проверил свои страницы> настройки учетных записей> приложения, чтобы узнать, имеет ли созданное мной приложение разрешение на доступ к странице, и оно имеет. Это общедоступная страница. Что мне не хватает в потоке, чтобы дать этому приложению разрешение на доступ к событиям моих страниц? Тот же запрос отлично работает, если я запускаю его в Graph API Explorer с токеном доступа, который я генерирую для user_events.

Я в основном пытаюсь понять, почему конкретный плагин Wordpress под названием FB Sync Events не работает, а аутентификация приложения - это то, что, похоже, не работает, потому что $ facebook-> api ничего не возвращает для fql.query ТОЛЬКО для моей страницы. QQ


person narak    schedule 30.01.2012    source источник


Ответы (2)


Для доступа к событиям страницы вам может потребоваться токен доступа PAGE. Жетоны доступа к странице получить легко. Для токена доступа пользователя администратора страницы вызовите Graph /me/accounts, и там будет страница вместе с токеном доступа для этой страницы. Это то, что называется «токеном доступа к странице». Затем, используя этот токен доступа к странице, вызовите свой оператор FQL.

person DMCS    schedule 30.01.2012
comment
Хорошо, но как мне использовать этот токен доступа в FQL? - person narak; 31.01.2012
comment
То же, что и всегда, передать этот токен доступа в строке запроса &access_token={TOKEN} - person DMCS; 31.01.2012
comment
Вы можете взглянуть на код, который я написал? Я передаю запрос методу api (), и мне не удалось найти никакой документации о том, как отправить ему access_token. - person narak; 31.01.2012
comment
Вы также можете добавить его в свой массив параметров :) - person DMCS; 31.01.2012
comment
При использовании токена доступа для ссылки на аккаунт Facebook выдает ошибку: олицетворенные токены доступа можно использовать только с Graph API. - person Boaz; 13.02.2012
comment
Довольно просто использовать API-интерфейс графа для выполнения FQL: HTTP GET для API-интерфейса графа с помощью http://graph.facebook.com/fql?q=YOUR_QUERY&access_token=PAGE_ACCESS_TOKEN - person DMCS; 13.02.2012

Насколько мне известно, невозможно отобразить события, на которые вы были приглашены, если вы создаете страницу Facebook вместо профиля. Поскольку при создании страницы у вас есть только пользователи, которым нравится ваша страница. Это означает, что они могут взаимодействовать с публикуемым вами контентом, но не могут взаимодействовать с вами как с брендом или компанией.

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

person webjunkie    schedule 23.01.2013