Размещение ссылок на страницу facebook без аутентификации пользователя

#php #facebook #facebook-graph-api

#php #Facebook #facebook-graph-api

Вопрос:

В принципе, у меня есть веб-приложение, которое будет размещать ссылки на facebook страницу (не профиль) стены.

Насколько я знаю, для этого мне нужен постоянный токен. Twitter выдает мне ссылку прямо из учетной записи, поэтому я надеялся, что facebook будет иметь что-то подобное. Однако токен, который я получаю с manage_pages разрешением, имеет срок действия.

Из документов по аутентификации это то, что я делал:

запрашивать токен для управления страницами:

 https://www.facebook.com/dialog/oauth?client_id=123456789123amp;redirect_uri=http://myapp.com/fbamp;scope=manage_pagesamp;response_type=token
  

верните токену URL, который я собираюсь вставить в конфигурацию моих приложений:

http://myapp.com/fb#access_token=123123123123123|2.18VYbalblablablaswhg__.3600.1304294400.1-615173155|Tzb_U9ma0LIPJXNzqsZ_xUJpfn8amp;expires_in=4205

Когда я на самом деле пытаюсь опубликовать на странице с этим, я получаю ошибку с истекшим сроком действия.

 $post_params = array(
'access_token' => self::$page_token,
'message' => $string
);
$response = $fb_app->api('/'.self::$page_id.'/feed','POST', $post_params);
  

Ответ №1:

Для получения постоянного токена вам необходимо разрешение offline_access. Если вы собираетесь публиковать как саму страницу, вам нужно получить токен из /USER_ID /accounts для этой страницы, иначе вы будете публиковать из своего профиля. Если вы не собираетесь публиковать как страницу, вам на самом деле не нужно разрешение manage_pages, publish_stream для пользователя достаточно. Удачи.

Комментарии:

1. Это действительно всплывающее окно со страницей, запрашивающей постоянный доступ. Но я получил ошибку # 200 (не авторизован), когда попытался опубликовать на стене pages с помощью токена доступа к странице, который я приобрел у / me / accounts.

2. Ах, мне тоже нужно было иметь publish_stream. Итак, в параметре scope у меня теперь есть publish_stream,offline_access,manage_pages .