Google plus登录按钮在线时无法呈现

时间:2014-01-14 15:46:23

标签: javascript web google-plus

我正在为我的新手机游戏开发一个社区网站,我正在尝试添加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编码!

3 个答案:

答案 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