0

我正在尝试使用 Facebook 实时更新 API ...我有以下代码:

<?php

define('VERIFY_TOKEN', '*');
$method = $_SERVER['REQUEST_METHOD'];

if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' && $_GET['hub_verify_token'] == VERIFY_TOKEN) {
    echo $_GET['hub_challenge'];
} else if ($method == 'POST') {

    $hostname = "*";
    $username = "*";
    $dbname = "*";
    $password = "*";

    mysql_connect($hostname, $username, $password) OR DIE('Unable to connect to database! Please try again later.');
    mysql_select_db($dbname) or die(mysql_error());

    $post_body = file_get_contents("php://input");
    $object = json_decode($post_body, true);

    foreach ($object->entry as $update) {
        // For each entry in notification, insert a row of information into the table "FaceBook"
        $changed_fields = $update->changed_fields[0];
        $result = mysql_query("INSERT INTO FaceBook (uid, id, time, changed_fields) VALUES('$update->uid', '$update->id', '$update->time', '$changed_fields')")
                or die(mysql_error());
    }
    mysql_close();
}
?>

现在,当更新发生时,facebook 正在发送一个 POST 请求,但没有进入 foreach 循环......我试图检查 $object 是否为空,但它返回 2 个元素(使用计数)..

有任何想法吗?

4

1 回答 1

0

对此也有一些问题。

每个对象都有许多条目。我相信每个条目都可以有一些变化。所以“变化”也是一个数组,就像条目一样。

尝试这个:

foreach($object->entry as $update){

    foreach($update->changes as $change){

        //access information about the change that occured on the page

    }
}
于 2013-11-27T09:37:14.417 回答