Подтвердить что ты не робот

Не получать обновления в реальном времени от Facebook

Я установил свой сервер для получения обновлений в реальном времени с facebook, я прошел проверку подлинности, чтобы получить токен и т.д., зарегистрировал URL обратного вызова... и я не получил ни одного уведомления, поскольку запрос GET проверки подлинности.

Когда я GET graph.facebook.com/APP-ID/subscriptions получаю...

data: [
{
  object: "user",
  callback_url: "REDACTED-VAID-URL",
  fields: [
    "activities",
    "books",
    "checkins",
    "events",
    "feed",
    "friends",
    "interests",
    "likes",
    "location",
    "movies",
    "music",
    "television"
  ],
  active: true
}
]

Итак, насколько я могу сказать, уведомление в реальном времени настроено правильно. Когда я отправляю свой POST на URL обратного вызова, сервер каждый раз посылает мне сообщения о POST, но я никогда не получал это после обновления facebook, поэтому я уверен, что он просто не ударил по URL. У меня несколько пользователей, прошедших проверку подлинности с помощью приложения, мы все пробовали разные вещи на facebook, чтобы попытаться запустить его (обновление статуса, сообщение и т.д.). Я могу потянуть их фид и т.д. Из нормального API для отдыха.

Должно быть что-то, что я здесь просто отсутствует, что еще мне нужно сделать, чтобы заставить это работать?!

4b9b3361

Ответ 1

Для тех, кто использует PHP...

Данные в реальном времени POST в Facebook не войдут или не узнаются через обычный массив $_POST в PHP. Вы можете использовать следующее, чтобы получить необработанный JSON, который составляет запрос на ваш сервер:

$json = file_get_contents("php://input");

Затем вы можете преобразовать это в массив просто:

$realtime = json_decode($json, true);

Слишком плохо, однако, что данные Facebook дают вам в этих запросах, в основном бесполезны: -/

Ответ 2

В моем случае я принимал запросы GET, но не принимал запросы POST по URL-адресу обратного вызова.