Google +帐户与Firebase

时间:2017-03-21 01:46:06

标签: firebase firebase-authentication actions-on-google

我正在使用外部API处理Google家庭应用程序。我需要当前用户登录并与外部API(外部API提供的访问/刷新令牌)链接。

我的方法:

  • 设置firebase应用程序
  • google home应用程序位于functions文件夹中。
  • 我会设置一个页面,用户首先使用firebase.auth()使用他的Google帐户登录,然后使用外部API帐户(使用外部API Oauth)登录。
  • 然后我会在firebase数据库中创建一个条目,为每个用户存储外部API提供的访问/刷新令牌。

这是我有点困惑和卡住的地方。我已设法设置登录页面(Google登录,然后是外部API登录)并将其存储到firebase数据库(/ users / {google_uid})。

现在它在数据库中,如何在Google主页应用程序中设置身份验证?

谢谢!

2 个答案:

答案 0 :(得分:3)

首先,您需要在console.developers.google.com中设置一个项目,然后在项目中激活 Google Actions API 。然后,您应该按照以下步骤操作:

  1. 将API中的以下重定向URI列入白名单: https://oauth-redirect.googleusercontent.com/r/

  2. 在您的API.AI项目中,转到“集成”并启用“操作” Google Card。

  3. 在Google上的操作设置中,放置您的项目ID和 选择登录所需以获取欢迎意图和任何其他意图 意图用户需要凭据。 enter image description here

  4. 下面,您将找到OAuth2字段,例如clientID,client 机密,授权URL和令牌URL。使用OAuth2实现它 您的API信息以及授权该应用程序。 enter image description here

  5. 授权后,您可以预览该应用程序,它将在您的Google Home设备中提供,当您第一次调用时,它会在您的Google Home应用中提供一张卡片做链接。如果您没有设备,则可以使用Web模拟器测试您的操作。

    有关详细信息,请访问actions on google文档。

答案 1 :(得分:3)

关于您如何考虑与Google和Google Home上的操作相关联的帐户存在一些问题。 Google Home不允许您直接访问Google帐户 - 相反,它就像网络浏览器一样,帐户关联过程要求您向主页“浏览器”发出OAuth2令牌,以便将来使用。

如果您可以控制外部API,并且它会发出OAuth2令牌(听起来像这样),您可以完全跳过Firebase部分。您只需要使用此外部服务的OAuth2信息配置API.AI - 客户端ID和机密,登录页面的URL以及令牌交换页面等。在这种情况下,将提供您的webhooks,提供OAUth2您在调用时应将其传递给外部API的访问令牌。详细信息请参阅Google for Google文档Account Linking文档。

如果您可以控制此API,则可能需要提供可以分发身份验证令牌的OAuth2 服务器的基本实现(您创建的令牌)或者可以用来从外部API获取auth令牌的那些)。然后,您将使用这些OAuth令牌调用您的webhook,并且您应该使用该令牌来查找用于访问外部API的令牌。您有一些选项可以实现这一点,这些选项在Google文档操作的OAuth2 Account Linking Overview中进行了讨论。

相关问题