Использование PHP5 Curl для вызова Facebook Graph API.Разные серверы получают разные ответы - PullRequest
5 голосов
/ 15 апреля 2011

У меня есть приложение PHP, которое использует Curl для вызова API Graph Facebook и публикации элементов на стене пользователя. Он отлично работает на моем компьютере разработчика и наших производственных серверах, но не работает на одном сервере QA. Мы получаем туманный код ошибки 100: «Сообщение не удалось». Насколько я могу судить, я посылаю одну и ту же информацию со всех серверов.

Вот мой запрос на поле разработчика:

Array
(
    [0] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
    [1] => Accept-Language: en-us,en;q=0.5
    [2] => Accept-Charset: utf-8;q=0.7,*;q=0.7
)
POST: https://graph.facebook.com/me/feed
{
    "message":"my message",
    "picture":"http:\/\/server.com\/image.jpeg",
    "link":"http:\/\/server.com\/page",
    "name":"foo",
    "caption":"bar",
    "access_token":"{ACCESS_TOKEN}"
}

Вот ответ (это работает):

{
   "id": "6705254_873254004878"
}

Вот мой запрос на QA box (тот же ACCESS_TOKEN) :

Array
(
    [0] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
    [1] => Accept-Language: en-us,en;q=0.5
    [2] => Accept-Charset: utf-8;q=0.7,*;q=0.7
)
POST: https://graph.facebook.com/me/feed
{
    "message":"my message",
    "picture":"http:\/\/server.com\/image.jpeg",
    "link":"http:\/\/server.com\/page",
    "name":"foo",
    "caption":"bar",
    "access_token":"{ACCESS_TOKEN}"
}

Вот ответ на QA (сбой)

{
   "error": {
      "type": "OAuthException",
      "message": "(#100) Message Failed"
   }
}

Я удалил фактические URL-адреса, которые мы посылаем для изображения и ссылки, но вы поняли:)

Кто-нибудь знает, что я могу делать неправильно? Это выглядит так же для меня ....

Ответы [ 2 ]

1 голос
/ 01 августа 2014

Насколько я понял политику facebook, только один клиент может авторизоваться с определенным токеном доступа, поэтому вы должны получить новый, прежде чем публиковать. Это было описано здесь: Facebook: «Этот код авторизации был использован.», «Type»: «OAuthException», «code»: 100

Так что вы должны добавить

$access_token = $session->getToken();
1 голос
/ 27 апреля 2011

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

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