2013-07-16 30 views
0

我做在node.js的实时更新,我不知道我已经设置了正确的endpointurl和回调URL这是“/ facebookRealtime /回调”和域名+端口+”/facebookRealtime /回调”。我正的错误是“{”错误“:{”消息“:”(#2200)回调验证失败:操作超时后6000毫秒0字节收到”,‘类型’:‘OAuthException’,‘代码’: 2200}}“,请告诉我发生了什么事以及如何解决它。如何设置的Node.js实时更新

exports.postSubscription=function (endpointUrl, appId, accessToken, object, fields,callback){ 

var options = { 
     host:'graph.facebook.com', 
     port:443, 
     path:'/'+appId+'/subscriptions?access_token='+accessToken, 
     method:'POST' 
}; 
var postData = querystring.stringify({ 
    "object":object, 
    "fields":fields, 
    "callback_url": endpointUrl, 
    "verify_token": "abc123" 
}); 

var req = https.request(options, function(res){ 
    var data = ""; 
    res.on('data', function(chunk){ 
     data += chunk; 
    }); 

    res.on('end', function(){ 
     callback(data); 
     console.log(data); 
    }); 

    res.on('error', function(e){ 
     callback(e.message, null); 
    }); 
}); 
req.write(postData); 
req.end(); 
    }; 
+0

看起来您已经创建了请求,但没有通过它发送任何数据,并且端点正在等待数据,但未能获取任何内容 - 因此它会中断连接。 – moka

+0

我可以在订阅中显示代码 –

回答

0

它看起来像你缺少你的请求头与Content-LengthContent-Type

exports.postSubscription = function(endpointUrl, appId, accessToken, object, fields, callback) { 
    var postData = querystring.stringify({ 
     "object": object, 
     "fields": fields, 
     "callback_url": endpointUrl, 
     "verify_token": "abc123" 
    }); 

    var options = { 
     host:'graph.facebook.com', 
     port:443, 
     path:'/'+appId+'/subscriptions?access_token='+accessToken, 
     method:'POST', 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded', 
      'Content-Length': postData.length; 
     } 
    }; 

    var req = https.request(options, function(res) { 
     var data = ""; 
     res.on('data', function(chunk) { 
      data += chunk; 
     }); 

     res.on('end', function() { 
      callback(data); 
      console.log(data); 
     }); 

     res.on('error', function(e) { 
      callback(e.message, null); 
     }); 
    }); 
    req.write(postData); 
    req.end(); 
}; 

在此之上,你需要处理与更新来自Facebook的请求。如果你不处理它们,那么你将面临错误。

+0

谢谢。但是错误仍然存​​在。你能告诉我为什么吗? –

+0

已更新的答案。你在端点处理来自Facebook的更新吗? – moka

+0

问题解决了。谢谢。 –

相关问题