我正在为我的新手机游戏开发一个社区网站,我正在尝试添加google plus登录流程。
实施过程中采取的步骤:
- >关注了this谷歌开发者教程
HTML按钮代码:
<span id="signinButton">
<span
class="g-signin"
data-callback="onSignInCompleted"
data-clientid="<myID>.apps.googleusercontent.com"
data-cookiepolicy="single_host_origin"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/plus.login">
</span>
</span>
Javascript加载代码:(在关闭之前)
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
问题:
- &GT;该实现在localhost
中工作正常- &GT;该实现不能在线工作(即上传到服务器上)
在线页面奇怪行为:
- &GT;该按钮无法呈现
- &GT;签名回调不会被调用
我的网络应用程序OAuth 2.0 javascript起源:
https://fcouceiro.com
https://www.fcouceiro.com
http://www.fcouceiro.com
http://fcouceiro.com
http://meatify:8888
我目前正在使用fcouceiro.com作为原点,但想法是在问题解决后使用meatify.fcouceiro.com子域名。
更新:经过一些实验后,我发现有时(就像你第一次访问页面一样)它会被渲染(按钮)。所以我认为问题可能是在html之后加载的脚本。因为我正在使用jQuery加载函数来加载包含登录按钮的html页面。并且onload被调用并且脚本试图找到我的按钮但它不可用。你觉得怎么样?
您可以在此处找到我的页面: http://fcouceiro.com
APPy编码!
答案 0 :(得分:10)
好的伙计们。问题解决了!谢谢你的帮助。这是解决方案(复杂的......):
只需确保在按钮“加载”后加载了google +登录按钮的javascript(如果使用html渲染方法)。我的问题是我的登录按钮被jQuery加载函数加载到div中,有时这个函数需要一些时间来执行。幸运的是,我在该函数中设置了一个回调参数来加载我的g + js!
再次感谢你!
答案 1 :(得分:4)
澄清所选答案:
必须在渲染登录按钮之前加载platform.js,例如在angularjs中,您只需使用$ timeout等待1秒。
答案 2 :(得分:1)
对于任何可能与此纠缠不清的人,data-cookiepolicy="single_host_origin"
可能是您遇到问题的原因。
尝试清除Cookie或在开发时设置data-cookiepolicy="none"
。
可以在此处找到更详尽的date-cookiepolicy说明:https://developers.google.com/+/web/signin/reference