在尝试检索经过身份验证的Google+用户的电子邮件地址时获取“gapi.client未定义”
Getting "gapi.client is undefined" when trying to retrieve an authenticated Google+ user's email address
我正在尝试从使用google +登录按钮登录我的网站的访问者那里检索用户数据,但我最终在javascript控制台中收到消息"TypeError:gapi.clientis undefined"。
由于我无法识别错误,我最终从Google复制/粘贴了示例代码,可以在此处找到:https://developers.google.com/+/web/people/#retrieve_an_authenticated_users_email_address
我唯一更改的是客户端ID(用于Web应用程序)。
而且我仍然得到同样的错误!
由于示例代码对我不起作用,我在想,也许我在 Google API 控制台中的设置是错误的。我已尝试按照说明进行操作:
- Google+ API 服务处于活动状态
- 重定向 URI:无
- JavaScript 起源设置为本地主机和实际生产域。
还尝试将示例代码上传到生产服务器,只是为了查看这是否是本地环境问题,但我仍然收到相同的错误。
除了plusone
脚本之外,还必须包含脚本并包含client
API:
<script src="https://apis.google.com/js/client:plusone.js" type="application/javascript"></script>
演示页面操作不正确,我已经修复了。
gapi.client.load('plus', 'v1', function() {
var request = gapi.client.plus.people.get({
'userId': 'me'
});
request.execute(function(response) {
console.log(response);
});
});
这听起来可能很愚蠢.. 但有时你只需要关闭并重新打开浏览器...
我在几乎所有相关的SO问题中尝试了几乎所有的解决方案,但没有任何效果。
最后我决定看看它是否适用于另一个浏览器,它确实......因此,我只是关闭并重新打开了我正在使用的浏览器。瞧。
我不确定为什么它不起作用。我没有缓存请求,我每次都使用 ctrl-F5 重新加载页面,并且还禁用了开发工具中的缓存(当使用开发工具时)。
这是我得到他的错误的两个原因,如果我遇到更多,我会在将来更新。
-
我遇到的错误之一是未加载变量。我默认使用Waterfox,尽管我觉得我没有获得任何有用的信息。我使用了Chrome,它给了我一条有用的错误消息,说明授权按钮为空。我不得不将授权按钮(我通过删除 camelCase 使其正确)直接移动到函数中,一切正常。
-
我还默认禁用第三方 cookie,再次没有得到任何有用的信息。我从字面上慢慢地重新创建了 Waterfox 配置文件,直到我到达首选项文件并最终确定首选项是第三方 cookie,启用它们,一切再次运行。
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 在jQuery中获取表的行索引
- 使用jquery将mysql数据获取到新的表行中
- 在动态创建的元素上获取对特定选择器的引用
- 从城市名称获取惊喜
- Angular只从数组中获取所需的数据
- 无法将数据从firebase获取到我的html页面
- 从ajax请求中获取javascript对象
- 如何从画布上的某个移动事件中获取X和Y
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在PHP中使用$_POST获取Select元素值
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 在尝试检索经过身份验证的Google+用户的电子邮件地址时获取“gapi.client未定义”
- 按开始和结束日期获取gapi日历事件不起作用