Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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
使用googleapi和javascript的PHP项目:继承的混乱_Javascript_Php_Google People - Fatal编程技术网

使用googleapi和javascript的PHP项目:继承的混乱

使用googleapi和javascript的PHP项目:继承的混乱,javascript,php,google-people,Javascript,Php,Google People,因此,我在工作中继承了一些使用php的项目。我没有使用php的经验,所以我当然一直在努力解决我们发现的问题。在这一点上,我只是想得到谷歌id的谁曾经碰巧登录时,他们访问该网站。奇怪的是,有些时候我的代码工作得很好,我得到了谷歌id,但它只对我们尝试过的一些帐户有效,其他帐户只返回null。下面的代码我只是想弄清楚谁是正确的登录者,但我对这一切是如何运作的一无所知,以至于我不知道到底出了什么问题 职业机会 功能启动(成功、失败){ gapi.client.init({ apiKey:'API

因此,我在工作中继承了一些使用php的项目。我没有使用php的经验,所以我当然一直在努力解决我们发现的问题。在这一点上,我只是想得到谷歌id的谁曾经碰巧登录时,他们访问该网站。奇怪的是,有些时候我的代码工作得很好,我得到了谷歌id,但它只对我们尝试过的一些帐户有效,其他帐户只返回null。下面的代码我只是想弄清楚谁是正确的登录者,但我对这一切是如何运作的一无所知,以至于我不知道到底出了什么问题


职业机会
功能启动(成功、失败){
gapi.client.init({
apiKey:'API KEY',
clientId:'clientId.apps.googleusercontent.com',
范围:“配置文件”,
}).然后(函数(){
var x=gapi.auth2.getAuthInstance();
log(“gapi.auth2.getAuthInstance():”+x);
log(“userId是:”+x.currentUser.get().getId());
load('people','v1',function(){
var request=gapi.client.people.people.get({
'resourceName':'people/me',
“requestMask.includeField”:“person.phone\u号码、person.organization、person.email\u地址、person.names”
});
log('request:'+request);
请求执行(功能(resp){
控制台日志(resp);
});
});
});
}
gapi.load('客户端',启动);

我将在这里提出一些建议,并在您编辑问题时进行编辑,而不是继续评论

首先,请将控制台的输出复制到您的问题中。这将帮助我们了解到目前为止代码中发生了什么

编辑4:

我不熟悉您正在使用的google API,所以我最好的建议是测试这段代码,如果它有时返回loggin=true,有时返回false,请使用这段简化的代码询问有关stackoverflow的新问题。用javascript和googleapi标记它(不管它的主标记是什么)。像你的代码一样看待答案是完全不同的。因此,我现在猜测,您进行的api调用需要重写/调用顺序不正确。但是尝试一下这个简化的代码,它是否有时显示已登录,有时不显示?如果是这样的话,那么我们已经缩小了问题的范围,足以让您提问,并且可能会得到真正熟悉谷歌API的人的回复

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Career Opportunities</title>

  <script src="https://apis.google.com/js/client:platform.js"></script>
  <script type="text/javascript">
  $(document).ready(function() {
    gapi.load('client', startUp);

    function startUp(onSuccess, onFailure) {
      gapi.client.init({
        apiKey: 'API KEY',
        clientId: 'CLIENTID.apps.googleusercontent.com',
        scope: 'profile',
      }).then(function() {
        // here we log whether the user is signed in or not, and it changes unexpectedly
        var x = gapi.auth2.getAuthInstance();
        console.log(x.isSignedIn.get());
      });
    }
    });
  </script>

</head>
<body>
</body>
</html>

职业机会
$(文档).ready(函数(){
gapi.load('客户端',启动);
功能启动(成功、失败){
gapi.client.init({
apiKey:'API KEY',
clientId:'clientId.apps.googleusercontent.com',
范围:“配置文件”,
}).然后(函数(){
//在这里,我们记录用户是否已登录,并且它会意外更改
var x=gapi.auth2.getAuthInstance();
log(x.isSignedIn.get());
});
}
});

我并没有真正找到这个答案,我的同事找到了,但我想我应该发布我们最终工作的内容

gapi.auth.authorize({
            'client_id': myClientId,
            'scope': 'email',
            'immediate': true
        }, function(authResult) {
            if (authResult['status']['signed_in']) {
                // Update the app to reflect a signed in user
                gapi.client.load('plus','v1', function(){
                    var request = gapi.client.plus.people.get({'userId': 'me'});
                    request.execute(function(resp) {

                        var userId = '<?php echo $_SESSION["userID"]; ?>';

                        if(userId == resp.id) {
                            onSuccess();
                        }
                        else {
                            onFailure();
                        }
                    });
                });
            }
            else {
                onFailure();
            }   
        });
gapi.auth.authorize({
“客户端id”:myClientId,
“范围”:“电子邮件”,
“立即”:真
},函数(authResult){
如果(authResult['status']['signed_in']){
//更新应用程序以反映已登录的用户
load('plus','v1',function(){
var request=gapi.client.plus.people.get({'userId':'me'});
请求执行(功能(resp){
var userId='';
if(userId==resp.id){
onSuccess();
}
否则{
onFailure();
}
});
});
}
否则{
onFailure();
}   
});

此错误是否显示在您的浏览器控制台(这表示javascript有问题)或已加载的页面(这表示php有问题)?抱歉,应该指定。在控制台中。控制台日志(resp);这就是它的作用。这个页面除了在控制台中显示谁登录之外什么都不做,这是应该的。因此Alex的评论,这都是javascript,似乎没有涉及php。我要做的第一件事是在整个代码中的不同位置放置更多的console.log消息,以便您可以尝试精确地指出代码失败的确切位置,以及失败时变量的值。在你的问题中复制新的代码和控制台输出,验证,js不做任何事情,甚至不应该在那里。我没注意到它还在那儿。仍在获取“请求没有有效的身份验证凭据”。添加了successful console.log jsut,以防taht helps感谢到目前为止的帮助。就我所知,成功X和失败X之间的唯一区别在于,isSignedIn在其中一个中设置为false,在另一个中设置为true。我的api密钥和客户端Id也是正确的。好吧,我会在网站上搜索,听起来这就是问题所在。也许,很明显,在测试时要确保用户登录到谷歌,只是做了一个小的更新,自从我们上次谈话以来,用户已经尝试了很多东西,但没有任何改变。将更新代码,但它仍然不工作,所以为什么。