Обновления Facebook API в реальном времени для страницы / канала без ответа

У меня проблема с подпиской в ​​режиме реального времени со страницы Facebook.

Когда я размещаю подписку, я получаю сообщение от Facebook об этом на мой URL обратного вызова.
Код:

$session = new FacebookSession('<APP ACCESS TOKEN>');
$request = new FacebookRequest(
$session,
'POST',
'/<APP ID>/subscriptions',
array(
'object' => 'page',
'callback_url' => 'http://*************/facebook/callback.php',
'fields' => 'conversation', // a try 'feed' to
'verify_token' => '<VERIFY TOKEN>',
)
);
$response = $request->execute();

НО, когда кто-то добавляет сообщение / разговор на мою страницу в ФБ, Facebook не отправляет мне никаких данных.

код callback.php:

<?php

// Insert the path where you unpacked log4php
include('log4php/Logger.php');

// Tell log4php to use our configuration file.
Logger::configure('config.xml');

// Fetch a logger, it will inherit settings from the root logger
$log = Logger::getLogger('myLogger');

// Start logging
$log->warn($_REQUEST);   // Logged because WARN >= WARN

require_once __DIR__ . '/facebook-php-sdk-v4-5.0-dev/src/Facebook/autoload.php';

use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\Authentication\AccessToken;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;

//define('VERIFY_TOKEN', '*******');

$method = $_SERVER['REQUEST_METHOD'];





if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' && $_GET['hub_verify_token'] == '<VERIFY TOKEN>') {
echo $_GET['hub_challenge'];
$log->warn($_GET);
$log->warn($_POST);
} else if ($method == 'POST') {
$updates = json_decode(file_get_contents("php://input"), true);
// Here you can do whatever you want with the JSON object that you receive from FaceBook.
// Before you decide what to do with the notification object you might aswell just check if
// you are actually getting one. You can do this by choosing to output the object to a textfile.
// It can be done by simply adding the following line:
// file_put_contents('/filepath/updates.txt',$updates, FILE_APPEND);

$log->warn($updates);
$log->warn($_GET);
$log->warn($_POST);
error_log('updates = ' . print_r($obj, true));
}

Спасибо за помощь !

1

Решение

В настоящее время существует открытая ошибка с поддержкой Facebook:

Так что, возможно, это временная проблема …

1

Другие решения

Каков вывод / {your-app-id} / subscription?

Согласно вашему коду вы подписались на / разговор, что требует разрешения read_page_mailboxes. Вы, вероятно, хотите сначала попробовать простую подписку на фид, чтобы проверить, работает ли это

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

0

Я нахожу ответ с большой помощью от друзей разработчиков форума Facebook 🙂

Мой код для подписки и код обратного вызова хорош. Но для разговоров или кормления недостаточно. Я должен добавить свое приложение на свою страницу в качестве подписанного приложения, используя запрос в графе API:
СООБЩЕНИЕ
{Страница-ID} / subscribed_apps

документы для этой операции включены:
https://developers.facebook.com/docs/graph-api/reference/page/subscribed_apps/

0
По вопросам рекламы [email protected]