Graph Api Ошибка публикации в качестве администратора страницы - PullRequest
0 голосов
/ 23 декабря 2010

Я разрабатываю приложение в php с помощью Graph API. Итак, я должен публиковать сообщения на странице Facebook в качестве администратора. Я следовал этому: Как публиковать на странице Facebook как администратор через API (Php SDK)? . Пару раз это работало хорошо, но теперь возвращает ошибку: Неустранимая ошибка PHP: Uncaught GraphMethodException: неподдерживаемый запрос на публикацию. \ N добавлено в /home/redmarv/public_html/owl-test/facebook.php в строке 453

Но не могу найти, где проблема. Даже с Google или поиск других сообщений прямо там. Но я не могу понять, почему это работает пару раз, а потом нет. Ничего не меняя.

На самом деле я использую этот код:

include_once "fbmain.php";

echo 'Hi ' . $uid . '<br />';

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

$access_token = $fb_accounts['data'][1]['access_token'];

echo 'Access Token= ' . $access_token;

$facebook->api('/page_id/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));

Включенный файл fbmain.php выполняет управление сеансом и создает объект $ facebook. Извините за мой плохой английский и спасибо.

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

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

Я предполагаю, что код в 'fbmain.php' обрабатывает аутентификацию пользователяи возвращая $ uid, но если вы еще не вошли в систему до того, как нажмете этот скрипт, код после include 'fbmain.php', вероятно, будет запущен до того, как Facebook выполнит перенаправление входа в систему.чтобы убедиться, что $ uid на самом деле содержит допустимое целое число перед его использованием.

include_once "fbmain.php";

if(is_int($uid) && $uid > 0) {
  echo 'Hi ' . $uid . '<br />';
  $fb_accounts = $facebook->api('/me/accounts');
  $access_token = $fb_accounts['data'][1]['access_token'];
  echo 'Access Token= ' . $access_token;
  $facebook->api('/page_id/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));
} else {
  // wait for facebook to redirect page to loginUrl or do something else
}
0 голосов
/ 24 декабря 2010

Для других, у которых будет такая же проблема, я от этого избавляюсь. Решение было довольно простым, если вы хотите опубликовать на своей странице в виде самой страницы, вы должны изменить это:

$facebook->api('/page_id/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));

С этим:

$facebook->api('/me/feed', 'post', array('message'=>'OWL F TOOLS N TEST by: '.$uid,  'access_token'=>$access_token, 'cb'=>''));

Это очень просто, если вы являетесь страницей (используя access_token), которую вы хотите опубликовать на своей стене (например, /memefefe))

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...