Обновление API API реального времени Facebook v2.2

Я работал в php
Я сделал работу и sottoiscrizione

API Facebook v.2.2

но сейчас есть проблема
как мне прочитать обновления каналов, которые я получаю?

Код является:

<?php

//file of program
require_once('LoginFb.php');
require_once('FbClass.php');
require_once('dbClass.php');
require_once('FacebookClass.php');

//receive a Real Time Update

$method = $_SERVER['REQUEST_METHOD'];

// In PHP, dots and spaces in query parameter names are converted to
// underscores automatically. So we need to check "hub_mode" instead
//  of "hub.mode".
if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' &&
$_GET['hub_verify_token'] == 'thisisaverifystring') {

echo $_GET['hub_challenge'];    //print the code on the page that Facebook expects to read for confirmation

} else if ($method == 'POST') {
$updates = json_decode(file_get_contents("php://input"), true);
// Replace with your own code here to handle the update
// Note the request must complete within 15 seconds.
// Otherwise Facebook server will consider it a timeout and
// resend the push notification again.

$testo=json_decode($updates["entry"]);$var=fopen("nome_file.txt","a+");
fwrite($var, "ciao");
fwrite($var, $updates );

fclose($var);error_log('updates = ' . print_r($updates, true));
}

?>

В приведенном выше файле «$ update» содержит обновленный канал, но как извлечь?

Примечание: подписка РАБОТАЕТ и обновления поступили на мой сервер.

Помоги мне, пожалуйста 🙂

0

Решение

Согласно документации Facebook [ссылка на сайт]:
Обратите внимание, что обновления в реальном времени только указывают, что конкретное поле изменилось, они не включают в себя значение этих полей. Они должны использоваться только для указания того, когда необходимо сделать новый запрос API Graph к этому полю.

Таким образом, вы не получите обновленные данные, вместо этого вы получите обновленное имя поля. Получив обновление, вы должны извлечь измененное поле (я объяснил это ниже) и сделать новый запрос API Graph к этому полю. Наконец, вы получите обновленные данные поля.

Как извлечь имя пользователя и измененное поле?
Вы получаете это:

{"entry":[{"id":"****","uid":"****","time":1332940650,"changed_fields":{"status"]}],"object":"user"}

где «id» — это мой pageId, а «changes_fields» — массив измененных полей.
Вы можете извлечь их следующим образом:

$entry = json_decode($updates["entry"]); <br>
$page = json_decode($entry["uid"]); <br>
$fields = json_decode($entry["changed_fields"]);

Надеюсь, поможет! 🙂

Нет функции -> Respose содержит массив массивов, правильный код:

$json = json_decode($updates["entry"][0]["uid"], true);
0

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

Других решений пока нет …

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