Как получить доступ к странице Facebook без входа в систему или взаимодействия с пользователем

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

У меня эта функция работает, но только когда я получаю токен доступа из Graph API Explorer, хотя срок действия токена доступа истекает примерно через час. Кажется, я не могу понять, как программно получить access_token для страницы и каждый раз запрашивать новый из моих PHP-скриптов, чтобы они не истекали и не требовали взаимодействия с пользователем.

    function post_to_facebook($title, $message, $link, $picture) {

            require '../facebook/src/facebook.php';

            $page_token = 'xxx';

            $page_id = 'xx';

            $facebook = new Facebook(array(
                    'appId'  => '<app_id>',
                    'secret' => '<app_secret>',
                    'cookie' => false,
            ));

            $facebook->setAccessToken($page_token);

            try {
                    $ret_obj = $facebook->api('/'.$page_id.'/feed', 'POST', array(
                                            'caption' => $title,
                                            'link' => $link,
                                            'message' => $message,
                                            'picture' => $picture
                                     ));

            } catch(FacebookApiException $e) {
                    error_log($e->getType());
                    error_log($e->getMessage());

                    return false;
            }

            return true;
    }

Может ли кто-нибудь объяснить, как я могу получить токен доступа без необходимости вручную искать его с помощью проводника графа API или входа пользователя?


person John Tangale    schedule 03.10.2012    source источник


Ответы (1)


Это невозможно.

Единственный правильный (и законный) способ получить токен доступа — это взаимодействие с пользователем (через процесс входа в систему).

person zerkms    schedule 03.10.2012
comment
Черт. Я бы подумал, что с идентификатором приложения и секретом приложения я мог бы, по крайней мере, иметь возможность взаимодействовать со страницей FB моего сайта без взаимодействия с пользователем. Я где-то читал, что токены доступа к странице не имеют срока действия? Я не нашел, что это так, но я, возможно, ищу в неправильных местах. Вы знаете что-нибудь об этом? - person John Tangale; 04.10.2012
comment
@John Tangale: токены доступа истекают через 60 дней: developers.facebook.com/roadmap/ удаление офлайн-доступа - person zerkms; 04.10.2012
comment
Те, которые я получил от проводника графа API, длились всего час. Поиграем с ним еще. - person John Tangale; 04.10.2012
comment
@John Tangale: правильно - вам нужно явно продлить срок его действия. См. Сценарий 4 по адресу developers.facebook.com/roadmap/offline-access- удаление/ - person zerkms; 04.10.2012
comment
Я много читал об этом. По какой-то причине я не могу создать расширенный токен. Независимо от того, что я пытаюсь сделать, это состояние в сценарии 5, где я могу получить токен страницы, срок действия которого не истекает. Из приведенной выше ссылки на Facebook видно, что сценарий 5 должен сработать для меня, если я смогу понять, как его правильно получить. - person John Tangale; 05.10.2012
comment
@John Tangale: возможно, стоит создать отдельный вопрос с соответствующим кодом. Я не могу предположить, что именно вы делаете неправильно. - person zerkms; 06.10.2012
comment
Еще раз спасибо. Я принял ваше предложение и разместил новый вопрос здесь: stackoverflow.com/questions/12770720/ - person John Tangale; 07.10.2012