尝试检索经过身份验证的Google+用户的电子邮件地址时,“gapi.client未定义”

时间:2013-10-20 10:29:09

标签: javascript api google-api google-plus

我正在尝试从使用google +登录按钮登录我网站的访问者检索用户数据,但我最终在javascript控制台中收到消息“TypeError:gapi.client is undefined”。

由于我无法识别错误,因此我最终复制/粘贴了Google的示例代码,可在此处找到:https://developers.google.com/+/web/people/#retrieve_an_authenticated_users_email_address

我唯一改变的是客户端ID(用于Web应用程序)。

我仍然得到同样的错误!

由于示例代码对我不起作用,我想,也许我在Google API控制台中的设置是错误的。我试图按照说明操作:

  • Google+ API服务处于有效状态
  • 重定向URI:无
  • JavaScript起源设置为localhost和实际生产 域。

还尝试将示例代码上传到生产服务器,只是为了查看这是否是本地环境问题,但我仍然遇到同样的错误。

4 个答案:

答案 0 :(得分:8)

client脚本外,您必须包含脚本并添加plusone API:

<script src="https://apis.google.com/js/client:plusone.js" type="application/javascript"></script>

演示页面做得不正确,我已经修复了。

答案 1 :(得分:5)

gapi.client.load('plus', 'v1', function() {

    var request = gapi.client.plus.people.get({
        'userId': 'me'
    });

    request.execute(function(response) {
        console.log(response);   
    });
});

答案 2 :(得分:0)

这可能听起来很愚蠢..但有时你只需要关闭并重新打开浏览器......

我在几乎所有相关的SO问题中尝试了几乎所有解决方案,没有任何效果。

最后我决定看看它是否与其他浏览器一起使用,它确实...因此我关闭并重新打开了我正在使用的浏览器..并且瞧瞧。

我不确定为什么它不起作用。我没有缓存请求,我每次使用ctrl-F5重新加载页面,并且还在开发工具中禁用了缓存(对于使用开发工具时)。

答案 3 :(得分:0)

这是我得到他的错误的两个原因,如果以后再遇到其他问题,我会在以后更新。

  1. 我遇到的错误之一是未加载变量。尽管我感觉没有任何有用的信息,但我默认使用Waterfox。我使用了Chrome,它为我提供了有关授权按钮为null的有用错误消息。我必须直接将 authorizeButton (通过删除camelCase使其正常使用)移到函数中,一切正常。

  2. 默认情况下,我还禁用了第三方Cookie ,同样我也没有得到任何有用的信息。我从字面上慢慢地重新创建了Waterfox配置文件,直到进入首选项文件,并最终确定该首选项是针对第三方 cookie的,并启用了它们,并且它们又都可以正常工作。