Html Oauth工作不正常-仿真和调试模式-英特尔XDK

Html Oauth工作不正常-仿真和调试模式-英特尔XDK,html,oauth-2.0,intel-xdk,Html,Oauth 2.0,Intel Xdk,我是英特尔xdk和整个编码的新手。我正在开发Oauth2。我使用响应类型作为标记。我能够使用auth令牌生成重定向URI。当我调用附加了auth标记的GoogleAppScript webapp时,它在emulator中工作(有时)。为此,我调用了一个函数,并将webappurl与auth令牌一起传递。然后我使用命令window.open(URL)打开webapp。但是,当“测试”或调试模式以及脚本在重定向uri页面停止时,这不起作用。因此,我知道令牌已生成,但webapp未被调用。请帮我修一下

我是英特尔xdk和整个编码的新手。我正在开发Oauth2。我使用响应类型作为标记。我能够使用auth令牌生成重定向URI。当我调用附加了auth标记的GoogleAppScript webapp时,它在emulator中工作(有时)。为此,我调用了一个函数,并将webappurl与auth令牌一起传递。然后我使用命令window.open(URL)打开webapp。但是,当“测试”或调试模式以及脚本在重定向uri页面停止时,这不起作用。因此,我知道令牌已生成,但webapp未被调用。请帮我修一下

代码如下:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="xhr.js"></script>
      <script src="intelxdk.js">
    </script>
    <script>
        var OAUTHURL    =   'https://accounts.google.com/o/oauth2/auth?';
        var VALIDURL    =   'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
        var SCOPE       =   'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email';
        var CLIENTID    =   '****************************';
        var REDIRECT    =   'http://example.com/oauth2callback'
        var LOGOUT      =   'http://accounts.google.com/Logout';
        var TYPE        =   'token';
        var _url        =   OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
        var acToken;
        var tokenType;
        var expiresIn;
        var user;
        var loggedIn    =   false;

        function login() {
            var win         =   window.open(_url); 
            var pollTimer   =   window.setInterval(function() { 
                try {
                    console.log(win.document.URL);
                    if (win.document.URL.indexOf(REDIRECT) != -1) {
                        window.clearInterval(pollTimer);
                        var url =   win.document.URL;
                        acToken =   gup(url, 'access_token');
                        tokenType = gup(url, 'token_type');
                        expiresIn = gup(url, 'expires_in');
                        getUserInfo(acToken);                   
                    }
                } catch(e) {
                ;}
            }, 500);    
        }

function gup(url, name) {
            name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
            var regexS = "[\\#&]"+name+"=([^&#]*)";
            var regex = new RegExp( regexS );
            var results = regex.exec( url );
            if( results == null )
                return "";
            else
                return results[1];
        }


function getUserInfo() {
           var url_token=  'https://script.google.com/macros/s/****************************/exec?access_token=' + acToken;
            window.open(url_token);
        }
</script>
</head>
<body>
    <a href='#' onClick='login(); id="loginText"'> Click here to login </a>

    <div id='uName'></div>
    <img src='' id='imgHolder'/>
</body>
</html>

var oauthull='1〕https://accounts.google.com/o/oauth2/auth?';
var VALIDURL=https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
var范围=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email';
var CLIENTID='*********************************';
var重定向http://example.com/oauth2callback'
var注销http://accounts.google.com/Logout';
变量类型='token';
var_url=oauthull+'scope='+scope+'&client_id='+CLIENTID+'&redirect_uri='+redirect+'&response_type='+type;
阿克托肯变种;
var标记类型;
呼气蛋白;
var用户;
var loggedIn=假;
函数登录(){
var win=window.open(_url);
var pollTimer=window.setInterval(函数(){
试一试{
log(win.document.URL);
if(win.document.URL.indexOf(重定向)!=-1){
窗口清除间隔(轮询计时器);
var url=win.document.url;
acToken=gup(url,“访问令牌”);
tokenType=gup(url,“token_type”);
expiresIn=gup(url,‘expires_in’);
getUserInfo(acToken);
}
}捕获(e){
;}
}, 500);    
}
函数gup(url、名称){
名称=名称。替换(/[\[]/,“\\\[”)。替换(/[\]]/,“\\\]”);
var regexS=“[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
var regex=新的RegExp(regexS);
var results=regex.exec(url);
如果(结果==null)
返回“”;
其他的
返回结果[1];
}
函数getUserInfo(){
var url_令牌=https://script.google.com/macros/s/****************************/exec?access_token='+acToken;
打开(url\U令牌);
}

下面是一个oauth2示例,用于英特尔XDK,添加InAppBrowser插件并进行测试:感谢Rakshith,我之前使用Appbrowser插件尝试过你的github代码,但它不起作用。我不确定,我改变了什么。但是,瞧,它现在起作用了!!非常感谢。。真高兴@krisrak嗨Rakshit,我面临另一个问题。每次我重新打开我的应用程序,我必须一次又一次地登录。有什么办法可以解决这个问题?提前感谢您获得access_token,您必须将其保存在本地存储或其他地方,并且您的应用程序应该使用它(如果可用),如果没有,您必须显示登录按钮HERE是用于Intel XDK的oauth2示例,请添加InApp浏览器插件并测试:感谢Rakshith,我之前用Appbrowser插件尝试过你的github代码,但它不起作用。我不确定,我改变了什么。但是,瞧,它现在起作用了!!非常感谢。。真高兴@krisrak嗨Rakshit,我面临另一个问题。每次我重新打开我的应用程序,我必须一次又一次地登录。有什么办法可以解决这个问题?提前感谢您获得访问令牌,您必须保存在本地存储或其他地方,并且您的应用程序应该使用该令牌(如果可用),如果不可用,您必须显示登录按钮