1

У меня есть проблема с подпиской на Facebook в режиме реального времени с моей страницы на facebook.Facebook API Обновления в реальном времени для страницы/Feed no response

Когда я отправляю подписку, я получаю сообщение от 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)); 
} 

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

ответ

0

я найти ответ с большой помощью facebook друзей разработчиков форума :)

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

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

1

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

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

+0

Да, это возможно , Я должен подождать, а затем проверить. Спасибо за ответ;) – storin

+0

Проблема теперь исправлена ​​в поддержке faceebook, но мой callback получает только данные с [hub_mode], [hub_challange] и [hub_verify_token] при создании новой подписки. Когда что-то меняется на моей странице (комментарии, сообщения или сообщение), звонок обратно пуст ... – storin

0

Что выход/{ваш -app-ID}/подписки?

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

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