gpt4 book ai didi

android - 在 Firebase Cloud Function 中获取 Android 用户数据

转载 作者:行者123 更新时间:2023-11-29 01:06:53 25 4
gpt4 key购买 nike

我正在 Android 中使用 API.AI 集成 Actions on Google(AoG ) 触发 Firebase Cloud Function

可以在following image上看到我的 Android 应用程序实现了 Google 登录过程,并且 Firebase 具有 Google 用户身份验证。

我想在 Firebase Cloud Function 上读取我的用户信息(电子邮件、姓名等),但我做不到。

我已经使用 Google Home 而不是 Android 应用完成了它。

你知道有什么方法可以做到这一点吗?我已经阅读了很多教程,但没有一个对我有用。


Android 上最重要的实现部分是 AIConfiguration:

final AIConfiguration config = new AIConfiguration(
CLIENT_ACCESS_TOKEN,
AIConfiguration.SupportedLanguages.English,
AIConfiguration.RecognitionEngine.System);

其中 CLIENT_ACCESS_TOKEN 是从 API.AI ( like here ) 获得的。

此外,API.AI 控制台页面使用 Webhook 和正确触发的 Firebase 云函数。

登录方法是使用FirebaseUI实现的。

此配置中最重要的部分是 Firebase 和 Actions on Google:

火力基地

您需要为 Google 填写两个登录选项:

1) 如果您在 Android 项目中使用 SHA1 指纹,则会自动添加白名单客户端 ID。顺便说一下,我的应用程序是自动添加的。

2) Web SDK 配置:字段填充了从我项目的 Google Cloud Platform 凭据控制台自动生成的 OAuth 2.0 客户端 ID。

Google 上的操作

我在这里设置帐户链接,就像在this answer 中一样.


感谢您的帮助。

最佳答案

在某种程度上,是的,问题在于帐户链接。

然而,潜在的问题是您使用的是 actions-on-google 库,但调用 API.AI 的方式不是通过 Actions on Google。因此,没有要链接的帐户 - 您拥有 Android 应用程序中的帐户,它与 Firebase 拥有的帐户相同,但您没有将其发送到您的 fulfillment webhook。

API.AI 本身没有用户身份验证或用户身份的概念。 (它确实有身份验证 - 但这是为了确保 webhook 从 API.AI 获得合法请求。它与用户无关。)它依赖于开发人员以其他方式添加此信息。 Google Assistant 根据您的需要提供了几种方法,但如果您不是在 Google Assistant 平台上构建(听起来您不是)并且只是直接通过 API.AI,则需要自己包含此信息。

我不太熟悉如何使用 apiai-java-client ,但看起来您与服务器进行的每次交换的一部分都可以包含一个 RequestExtras 对象。作为 this object 的一部分, 你可以包括 context称为(例如)具有参数的“已验证”,其中一个参数可以包含身份验证信息(例如身份验证 token ,尽管这可能不是一个很好的安全实践)。

关于android - 在 Firebase Cloud Function 中获取 Android 用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com