Как я могу опубликовать статус на странице facebook с именем страницы, а не именем пользователя? - PullRequest
0 голосов
/ 10 февраля 2012

Как я могу опубликовать сообщение о статусе на странице (не в профиле пользователя) с помощью PHP SDK и графического API, в то время как сообщение о состоянии должно отображаться как идентификатор страницы, а не идентификатор пользователя? Мое приложение может успешно опубликовать обновление статуса на стене страницы, но оно выглядит как настенный пост от имени пользователя с правами администратора, а не как обновление статуса от имени страницы, как если бы оно было опубликовано локально на Facebook. Другими словами, если имя страницы «Cool Stuff» и имя пользователя «Joe Smith», я хочу опубликовать обновление статуса на странице из «Cool Stuff», но обновления, которые появляются в моем приложении, появляются из «Joe Smith». Я уже явно устанавливаю идентификатор страницы и имя страницы в массиве статуса, но, похоже, это не помогает. Вот мой текущий код:

$post_info = array(
 'access_token' => $facebook->access_token,
 'type' => 'status',
 'message' => 'Hello World!',
 'from' => array('id' => $page_id, 'name' => $page_name)
);
$facebook->api('/' . $page_id . '/feed/', 'post', $post_info);

Есть предложения?

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Я нашел решение этой проблемы в документах по аутентификации FB API здесь:

https://developers.facebook.com/docs/authentication/

Ответ находится внизу страницы внизу.Ищите раздел «страница входа».По сути, ваше приложение должно запросить FB для получения списка токенов доступа пользователя к странице.Вы найдете токен для страницы, с которой хотите работать, и замените ее токеном обычного доступа пользователя в сообщении о статусе.Поэтому я добавил этот код, чтобы получить токены доступа к странице пользователя (ваше приложение должно иметь разрешение manage_pages, чтобы это работало):

$ all_accounts = $ facebook-> api ('/ me / accounts');

Если вы используете print_r для создания дампа $ all_accounts, вы увидите, что это массив имен страниц и токенов доступа.Возьмите токен для нужной страницы и замените $ facebook-> access_token (токен доступа пользователя) на токен страницы в коде, который я разместил в своем первоначальном вопросе.Он будет публиковать статус на странице как администратор страницы, а не пользователь.

0 голосов
/ 10 февраля 2012

Если вы являетесь администратором этой страницы, просто авторизуйтесь и отправьте статус как идентификатор пользователя страницы, а не как идентификатор пользователя.Это две разные сущности.

Это решит вашу проблему :-) Просто сначала убедитесь, что вы вручную проверили свою страницу по приложению: -)

...