【问题标题】:Actions on Google V2 idToken not sentGoogle V2 idToken 上的操作未发送
【发布时间】:2018-08-03 12:31:02
【问题描述】:

查看 appRequest 的文档以在 google https://developers.google.com/actions/reference/rest/Shared.Types/AppRequest 上执行操作

用户对象说userId 属性现在已被弃用,我们应该使用idToken 而不是https://developers.google.com/actions/reference/rest/Shared.Types/AppRequest#user

但是在模拟器中测试 V2 动作时,我的响应只包含 userId 属性而不是 idToken

我肯定在使用 API 的 V2,这并不是说它是链接帐户时的可选字段(值得我没有进行任何帐户链接)。

应该包含这个字段吗?

【问题讨论】:

    标签: actions-on-google


    【解决方案1】:

    这不是完全该页面所说的。

    是的,它说 userId 属性已被弃用 - 它没有显示任何替换。尽管您可以create one yourself if needed,但它已被弃用,无需直接替换。

    确实idToken 替换了它,虽然您可以从idToken 获得唯一ID,但它不会直接这样做。它也不会给你idToken,除非你take some steps to enable it

    要使用idToken 获取用户标识符,您需要做一些事情:

    1. 为 Google 助理启用 Google 登录。
    2. 请求用户使用 Google 登录助手登录您的操作让他们通过其他方式(网络或移动 Google 登录)登录同一项目。
    3. 当您获得 idToken 时,验证并提取 JWT 有效负载。如果您使用的是 action-on-google 库,它会为您执行此操作。如果不是,这是一个标准 JWT 令牌,您应该对其进行验证,并且负载中包含 ID。

    【讨论】:

    • 谢谢,你说得对,我确实对 userId 被 idToken 替换做了一些假设——尽管我确实试图通过询问是否应该包含该字段来澄清这一点。我认为混淆源于它实际上并没有说明 idToken 是一个可选字段,而 accessToken 字段确实说它“仅在定义帐户链接时才可用”。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多