2

我想从 Facebook 检索用户喜欢的音乐。我已订阅实时更新,并在应用程序本身中设置了适当的权限。

我正在使用 facebook 的 UI 来设置权限和实时更新

  1. 在 facebook 应用程序中设置“用户和朋友权限”权限。

    • 电子邮件
    • 用户兴趣
    • 用户喜欢
    • 用户位置
    • 朋友兴趣
    • 朋友喜欢
    • 朋友位置
    • user_actions.music
    • friends_actions.music
  2. 为实时更新设置所需的值。

    • 音乐
    • 喜欢
    • 兴趣
    • 当前位置
    • 签到

我的回调 URL 的代码是:

$myverify_token = 'vt1';
if($_SERVER['REQUEST_METHOD'] == 'GET') {
    if($_GET['hub_verify_token'] == $myverify_token) {
    $handle = fopen('f_d.txt', 'w');
    fwrite($handle, 'FaceBook can GET me');
    fclose($handle);

    echo $_GET['hub_challenge'];
    }
}
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $data = file_get_contents("php://input");
    $json = json_decode($data);

    $handle = fopen('f_d.txt', 'w');
    fwrite($handle, $json);
    fclose($handle);
}

f_d.txt设置了 777 个权限。

当我测试 mycallback URL 时,GET 条件为真,并且“FaceBook can GET me”被写入文件。现在我清除文件的内容(不删除)。

现在我登录我的 facebook,更改喜欢的音乐。等了一整天仍然没有来自 Facebook 的推送。该文件仍然是空白的。甚至没有对我的回调 URL 的 GET 请求??

我还需要什么才能获得适当的实时更新?

发布在 Facebook 上:https ://developers.facebook.com/bugs/394779173962716

4

1 回答 1

0

我注意到您正在尝试将响应写入文本文件中,这没关系,但是您在解码 json 之后执行此操作。这意味着您正在编写结果对象的内容。该文件将被创建,但实际写入将导致致命错误,留下一个空文件。

长话短说:删除 json_decode 命令,这样您就可以编写实际的字符串(即使它是 json 编码的,它也很简短,足以让您阅读它)。

于 2013-11-04T14:01:50.970 回答