【发布时间】:2018-02-06 11:59:43
【问题描述】:
所以我正在构建一个小型 Slack 机器人,我希望多个用户能够在不同的 Slack 团队中使用它。到目前为止的工作流程是这样的:
- 用户在网站上注册。
- 用户与 API 提供商连接并接收他们的 OAuth 凭据。每个用户的访问令牌都保存在数据库中。
- 用户将 Slack 机器人添加到他们的团队中。
通过硬编码的 API 值,机器人检索所需的数据,但机器人能够为每个 Slack 团队获取适当数据的最佳方式是什么?
我显然不希望用户需要一直登录网站等,那么如何将 Slack 团队与 Laravel 用户关联起来,然后拉取相关的 API 数据?
对于一些示例代码,假设我在我的数据库中为用户存储了一个 Strava 访问令牌,并且我想调用 API:
$botman->hears('runstats', function ($bot) {
$payload = \Strava\Account::get(
\Auth::user()->strava_id,
array('api_key' => "here_is_a_secret_key")
);
$bot->reply($payload->monthly_kms);
当我登录到我的网站并从我的网络界面查询时,这工作正常,它会返回 123km 作为示例。
显然,当我登录 Slack 时,没有 Auth::user 实例,因此它找不到相关的 Strava ID。这就是我希望能够为相关 Slack 用户检索的内容。我设想它被安装在多个 Slack 工作区中。
【问题讨论】:
-
到目前为止您尝试过什么?请显示一些相关代码
-
当然,我可以提供一些基本代码,但更多的是如何构建应用程序的问题。我看不到机器人和我网站上的用户帐户之间有什么链接。