Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mocha测试facebook应用程序_Facebook_Node.js_Mocha.js_Facebook Test Users - Fatal编程技术网

使用mocha测试facebook应用程序

使用mocha测试facebook应用程序,facebook,node.js,mocha.js,facebook-test-users,Facebook,Node.js,Mocha.js,Facebook Test Users,我正在开发一个使用Facebook登录的node.js应用程序,我正在尝试使用mocha进行单元测试和集成测试。因此,在函数中,我使用以下代码登录: exports.loginFacebook = function (done){ request({uri:"https://graph.facebook.com//oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_c

我正在开发一个使用Facebook登录的node.js应用程序,我正在尝试使用mocha进行单元测试和集成测试。因此,在函数中,我使用以下代码登录:

exports.loginFacebook = function (done){
request({uri:"https://graph.facebook.com//oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials",
    method: "GET",
        timeout: reqOpts.timeout}, 
    function(err, res, body) {
    if(err){
        throw err;
    }
    else{
        uri2 = "https://graph.facebook.com/APP_ID/accounts/test-users?"+String(body);
        request({uri:uri2,
            method: "GET",
                timeout: reqOpts.timeout},
         function(err, res, body) {
            if(err){
                throw err;
            }
            else{
                login_url = JSON.parse(body).data[0].login_url
                console.log(login_url);
                request({uri:login_url,
                    method: "GET",
                    timeout: reqOpts.timeout},
                 function(err, res, body) {
                    if(err){
                        throw err;
                    }
                    else{
                          request('http://localhost:4004/auth/facebook', reqOpts, function(err, res, body2) {
                        //console.log(res.statusCode)
                        //console.log(err)
                        done()  
                      });   
                    }
                }); 
            }
        });
    }
});
};
基本上,我调用facebookapi来获取访问令牌,然后列出我的测试用户,最后使用第一个用户登录。问题:当我调用登录url时,Facebook会重定向到此网页:(“更新您的浏览器”),因此我无法正确登录

有什么办法解决这个问题吗


谢谢

尝试在传递给请求的选项中设置用户代理标头。我不知道这个函数实际上是什么,但文档应该说明如何设置标题。你可以使用“Mozilla/5.0(Windows NT 6.2;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/29.0.1547.2 Safari/537.36”这样的用户代理,这将使facebook的服务器确信该请求来自新版本的Chrome。问题是否与此有关?