我有一个用于 API.AI 实现 webhook 的 App Engine 标准项目。用户仅通过聊天(Google 助理)与我的应用交互——<strong>没有网络界面。总之,该应用程序是一个聊天后端。
我的应用程序需要用户的电子邮件来发送更新。我读到我需要帐户链接。
基于SO 中的这个答案,这正是我所做的:
在GCP 控制台 → APIs & services → Credentials中,我创建了新的 OAuth 2.0 客户端 ID,授权重定向 URI:https://oauth-redirect.googleusercontent.com/r/[my-project-id]。
在Google 控制台上的操作 → 帐户链接中,我选择了授权代码:
- 从上一步复制的客户端 ID和客户端密码
- 授权网址:https ://accounts.google.com/o/oauth2/v2/auth
- 令牌网址:https ://www.googleapis.com/oauth2/v4/token
- 范围:
profile
和email
(最初我把完全命名空间,例如,https://www.googleapis.com/auth/userinfo.email
但不知何故它得到了“缩短”) - 测试说明:我创建的虚拟 Google 帐户
在API.AI 控制台 → 集成 → Google Assistant中,欢迎意图需要登录已勾选。
整个设置有点工作。以下是它在模拟器中的运行方式:
- 输入“与 [我的应用] 交谈”
- 收到响应,在调试选项卡中有登录 URL
- 复制粘贴网址,登录成功,重定向到谷歌主页
- 回到模拟器,输入:Talk to [my app]
- 已连接(验证码在 webhook 调用中传递,我的应用可以查询用户的电子邮件)
两个问题:
- 为什么我需要输入
Talk to [my app]
两次? - 我的提交被拒绝了,因为“您提供的测试说明要么不能正常工作,要么不够充实。请确保您提供了我们测试您的应用所需的一切,并且您提供的所有凭据都可以正常工作。”
我哪里做错了?
编辑:我尝试使用 Android 6,它显示“看起来您的 [项目] 帐户尚未链接”,并且有一个链接按钮。单击后,它会显示 Google 帐户选择器,但单击它不会执行任何操作(也不会向我的服务器发出请求)。