如何允许拥有自己的 slack account/company 的用户在我的应用程序中登录到他们的 slack 帐户

How can I allow users with their own slack account/company login to their slack account in my app

我读过的所有内容(例如 https://api.slack.com/docs/oauth)使我似乎只能构建一个与我管理的 Slack 团队集成的应用程序。例如。我必须创建我的 Slack 客户端 ID ……等等……然后我可以为我的团队提供 oAuth 用户。

我想要做的是允许我的应用程序的用户使用他们的 Slack 登录名登录我的应用程序(对于他们的 Slack 团队,我无法控制或访问。)我不想强迫我的用户生成使用我的应用程序的客户端 ID。我希望他们以相同的方式登录 Google 登录或 Facebook 登录。

我找到的最接近的东西是 "login with slack" HTML 按钮,但我想在 iOS 中使用 Swift.

这可能吗?

遗憾的是,这是不可能的。对于 google 或 facebook,身份验证的工作方式是它们为您提供移动设备 API 来处理您的应用程序与其网络服务之间的通信。所以你的任务是简单地采用 API,进行简单的函数调用并从 API 中为用户检索信息。例如,facebook 按钮 由 API.

提供

然而,从 slack 站点来看,他们只有 RESTful API 记录。所以在这种情况下,你必须自己处理参数的传递和存储,并手动发送 HTTP 请求。你可以看看 Alamofire 框架,它是进行 HTTP 请求的最佳选择。基本上,您必须通过 HTTP 请求发送具有特定 url 的所需参数来执行登录操作,并且您必须解析响应数据,然后查看登录是否成功,等等

多亏了朋友的帮助,看来答案是肯定的。

您必须首先确保 "Distribute App"

然后设置你需要的权限和"install app"(这有点不"smart"因为你可能不小心添加冲突的权限并在尝试安装时出错)。

一旦完成,您将获得一个授权令牌,并可以请求任何用户使用 oAuth 登录。

您也可以像这样触发登录请求:

https://slack.com/oauth/authorize?client_id=[clientid]&scope=identity.basic

编辑:对于未来的 Google 员工,Slack 现在还提供了此类 OAuth 的特定文档页面 grant/login:Sign in with Slack