Facebook实时订阅即使在挑战被回答时也会抛出异常

Facebook实时订阅即使在挑战被回答时也会抛出异常,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我正在尝试使用v2.4 Graph API(在fbcallback.php中创建回调函数后)从我的应用程序订阅Facebook的实时订阅,使用下面的代码从我的index.php页面(本文中的appid和IP地址显然是假的): 虽然我可以从回调日志中确定Facebook达到了我的回调函数,但我在其中使用了以下代码: <?php define('VERIFY_TOKEN', 'thisisaverifystringtestuser');

我正在尝试使用v2.4 Graph API(在fbcallback.php中创建回调函数后)从我的应用程序订阅Facebook的实时订阅,使用下面的代码从我的index.php页面(本文中的appid和IP地址显然是假的):

虽然我可以从回调日志中确定Facebook达到了我的回调函数,但我在其中使用了以下代码:

<?php
define('VERIFY_TOKEN', 'thisisaverifystringtestuser');                                    
$method = $_SERVER['REQUEST_METHOD'];                             

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

我从我的索引页代码中得到的消息如下所示: 异常:(#2201)响应与质询不匹配,预期值='866531638',收到='866531638'

有人遇到过吗


另外,我从应用程序仪表板角色创建了一个测试用户,并将其配置为在创建时订阅应用程序,还从仪表板获取(但未使用)该用户的访问令牌……因为我无法从我期望(或希望)的php代码中表示订阅过程中的特定用户此用户将被我的php代码订阅…我错了吗?

看起来您的脚本输出的不仅仅是
hub\u challenge

当我复制并粘贴您发布的错误消息,并将其插入记事本++时,我得到的部分显示为

received='?866531638'
          ^
–因此在实际值之前似乎有一些不可见/不可显示的字符


确保您的脚本保存为不带BOM的UTF-8,并且除了
hub\u challenge
值之外,它也不会进行任何其他输出。(这可能还包括
标签之外的内容。)

你说得绝对正确!将编码从UTF-8更改为无BOM的UTF-8解决了该问题。非常感谢你的帮助。
received='?866531638'
          ^