oauth-2.0 - Google 助理 - 登录 Strava
问题描述
抱歉,如果这是一个新手问题,但我希望有人可以提供一些建议。
我正在通过 Express 应用程序实现我的 Google 助理意图。我希望我的操作的用户能够从他们的 Strava 帐户获取和修改数据。Strava 支持 Google 身份验证,我想知道是否可以使用 Passport ( https://www.npmjs.com/package/passport-strava-oauth2 ) 等节点库来允许用户登录他们的 strava 帐户,以便我的操作可以调用他们的数据?
我有一个受欢迎的意图,可以获取一些 Google 个人资料数据,所以想知道我是否可以通过此响应传递一些详细信息?
googleApp.intent('Default Welcome Intent', (conv) => {
conv.ask(new Permission({
context: 'Hi, can I get your details from your Google account?',
permissions: 'NAME'
}));
});
解决方案
是的,但可能不是您正在查看的方式。
Permission
助手请求访问特定类型的信息 - 名称和位置。您希望建立更多的身份关系(使用他们的电子邮件地址或 Google 帐户)。
您可以使用Account Linking来做到这一点。
如果您确定您在 Strava 端使用 Google 登录,那么事情会更容易,您可以利用Google 登录助手。这样,一旦他们登录,您的 Action 将获得一个身份令牌,您可以使用该身份令牌获取信息,包括他们的 Google ID 和与登录的 Google 帐户关联的电子邮件地址。他们只需要登录一次 - 之后,只要他们连接,您就会获得一个身份令牌。
如果您的 Strava 项目和您的 Action 都使用同一个 Google Cloud 项目,那么您的用户会更加轻松。一旦他们在任一客户端上登录,他们就会在另一个客户端上登录。因此,您将通过身份令牌立即知道他们是谁。
推荐阅读
- object - “Gameobject”类型的对象已被销毁
- python - 如何通过pandas groupby数量和单价计算总金额
- python - 使用 asyncio 的 python 子进程的“关闭”事件侦听器
- python - 对于数字列表,查找累积和保持在范围内的所有组合
- javascript - angularjs控制器中的window.addEventListener导致调用两次或更多次
- haskell - 为什么 Haskell 中默认不启用某些语法语言扩展?
- rundeck - 动态选项和 rd-cli
- javascript - 如何从变量中创建具有键名的对象
- symfony - 致命错误:方法 class@anonymous::__toString() 在作曲家安装后不得抛出异常
- python - 拥有一个每个进程管理一个 ThreadPoolExecutor 的 multiprocessing.Pool 有什么好处吗?