Javascript 使用不带元数据标记的google signin

Javascript 使用不带元数据标记的google signin,javascript,google-signin,Javascript,Google Signin,我正在尝试使用没有元数据标签的GoogleSignin库。(最后对此进行了解释) 在很大程度上,我似乎能做到这一点,但当我的页面加载时,我会得到一个未捕获的异常: 缺少必需的参数“客户端id” 尽管我没有在元数据中指定客户端id,但auth lib显然仍在尝试初始化 有没有办法关闭lib,使其在调用函数之前尝试初始化 为什么我不想使用元数据标记 我有来自working great的示例,但我想将这个库合并到我的angular应用程序中,该应用程序使用angular服务登录。我希望我的angula

我正在尝试使用没有元数据标签的GoogleSignin库。(最后对此进行了解释)

在很大程度上,我似乎能做到这一点,但当我的页面加载时,我会得到一个未捕获的异常:

缺少必需的参数“客户端id”

尽管我没有在元数据中指定客户端id,但auth lib显然仍在尝试初始化

有没有办法关闭lib,使其在调用函数之前尝试初始化

为什么我不想使用元数据标记 我有来自working great的示例,但我想将这个库合并到我的angular应用程序中,该应用程序使用angular服务登录。我希望我的angular服务能够控制lib何时初始化,何时登录并处理结果。使用元数据标记的示例很好,但似乎每件事都是自己做的,没有给我太多的控制。
例如,我想要一个加载状态,因为lib正在初始化和登录,我不想显示登录按钮,直到这个初始状态被解决。

使用声明性方法和框架加载Google登录按钮往往是一个问题。我建议您尝试命令式方法

我想你有

<div class="g-signin2"></div>


你应该做的是:

  • 删除
    .g-signn2
    并指定一个id。因为库自动检测
    g-signn2
    并尝试用按钮小部件替换它
  • 使用JavaScript,将函数绑定到调用手动登录的按钮
  • 当您感觉舒服时(例如,在框架完全加载之后)进行手动初始化。客户端id可以作为
    auth2.init()
    params的一部分包含
  • 你可以在这里找到详细信息。


    FWIW,您可以使用
    https://apis.google.com/js/api.js
    而不是
    platform.js
    platform.js
    用于您想使用小部件的时候。

    有文档吗?它似乎只有一种方法——加载。使用该库时,我无法调用auth2.init()。正如我在另一个问题中提到的,如果我从按钮div中删除g-signn2,那么lib无法正确加载,我无法使用gapi.auth2.init对其进行初始化-我无法读取undefinedOK的init属性,我已经根据您发布的示例实现了这一点,因此我接受这一回答(进行了一些编辑)但是它产生了一个新的问题-我不能立即使用getAuthInstance调用然后在初始化完成时得到通知-我将创建一个新的问题。api.js是没有小部件功能的platform.js。因此,它们基本相同,只是api.js缺少
    .signn2
    名称空间。一旦
    gapi.load('auth2')
    完成加载,您将获得
    auth2
    名称空间。
    <script src="https://apis.google.com/js/platform.js"></script>