Автоматическая публикация в Facebook с помощью PHP SDK, например RSS Graffiti

Я хочу опубликовать авто на facebook с помощью php SDK, как это делает RSS Graffiti, поэтому у меня есть этот скрипт, все хорошо и работает, но я столкнулся с одной проблемой, вот мой скрипт

$facebook = new Facebook(array(
            'appId' => 'appId',
            'secret' => 'secret',
            'fileUpload' => true
        ));   


$facebook->setExtendedAccessToken();
$access_token = $_SESSION["fb_".$fb_appId."_access_token"];

$facebook->setAccessToken($access_token);
$accessToken = $facebook->getAccessToken();

$user_id = $facebook->getUser();
$fbuser = $user_id;

echo $accessToken ;

этот скрипт берет accessToken и сохраняет его в mysql, чтобы я мог использовать его в течение 60 дней. Я использую это приложение только для себя, поэтому я использую mysql вместо RSS, поэтому сообщения идут диалектически на FB, когда они публикуются на моем сайте. ..

Проблема:

Каждый раз, когда я хочу получить accessToken, мне нужно войти в Facebook вручную (можно ли это сделать автоматически, чтобы получить только токен)?

Могу ли я использовать свои данные для входа в SDK для автоматического входа и получения accessToken? если да то как?

я хочу получать accessToken каждые 60 дней, чтобы он работал.

поэтому, пожалуйста, помогите


person Harinder    schedule 04.09.2013    source источник
comment
Откуда это вычитал - $access_token = $_SESSION["fb_".$fb_appId."_access_token"];?   -  person Sahil Mittal    schedule 04.09.2013


Ответы (1)


Похоже, у вас много путаницы в отношении токена доступа.

Пожалуйста, помните следующие пункты о user access token-

  1. Кратковременный токен может быть получен только при взаимодействии пользователя с вашим приложением (точнее, когда пользователь входит/авторизует ваше приложение)

    Срок действия: до 2 часов

  2. Долгоживущий токен можно только обменять на недолговечный токен. Используя следующий запрос:

    GET /oauth/access_token?  
      grant_type=fb_exchange_token&           
      client_id={app-id}&
      client_secret={app-secret}&
      fb_exchange_token={short-lived-token}
    

    Срок действия: 60 дней

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

Подробнее об истечении срока действия и продлении токенов можно прочитать на сайте разработчиков здесь.

ИЗМЕНИТЬ

Если вы просто хотите опубликовать сообщение на своей фан-странице, вы можете использовать page_access_token. Токен фан-страницы с неограниченным сроком действия можно получить с помощью одноразового процесса; и вы можете использовать это для выполнения действий на своей странице.

См. принятый ответ этого обсуждения: Как получить долговременный токен для публикации на фан-странице Facebook с сервера

person Sahil Mittal    schedule 04.09.2013
comment
спасибо за ответ ... во-первых, я не хочу, чтобы пользователь входил в систему ... это просто для обновления моих сообщений на странице facebook. поэтому я использую долгоживущий токен. Я получаю этот токен один раз в 60 дней, получая вход в систему и сохраняя его в базе данных. 2-й - то, что я хочу, это ... я не хочу входить в систему вручную ... есть ли способ, с помощью которого я могу настроить работу кукурузы, чтобы она просто входила в систему от моего имени, генерировала токен и сохраняла его в моей базе данных? 3-й $access_token = $_SESSION[ это СЕССИЯ чтения моего o\login для получения токена. - person Harinder; 05.09.2013
comment
Очевидно, что это не возможно то, что вы ищете. Но если все дело в фан-странице, вы можете использовать токен страницы с неограниченным сроком действия. Я обновил ответы. Ps не забудьте поставить отметку /accept, если помогло - person Sahil Mittal; 05.09.2013