2013-07-16 26 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

問題解決了。謝謝。 –

相關問題