将 SlackKit
添加到你的 Package.swift
文件中
let package = Package(
dependencies: [
.package(url: "https://github.com/pvzig/SlackKit.git", .upToNextMinor(from: "4.6.0"))
]
)
当使用 Swift Package Manager 构建时,SlackKit 默认包含 vapor websocket framework,这需要 libressl。
你可以使用 homebrew 安装它:brew install libressl
有关更多详细信息,请参阅 SKRTMAPI 的 readme。
将 SlackKit
添加到你的 Cartfile
文件中
github "pvzig/SlackKit"
SlackKit 现在使用 .xcframeworks。当使用 Carthage 构建你的依赖项时,请指定一个平台:carthage bootstrap --use-xcframeworks --platform macos
将 SlackKit
添加到你的 Podfile
文件中
pod 'SlackKit'
要在你的项目中使用该库,请导入它
import SlackKit
使用 API 令牌创建一个 Bot 用户
import SlackKit
let bot = SlackKit()
bot.addRTMBotWithAPIToken("xoxb-SLACK-BOT-TOKEN")
// Register for event notifications
bot.notificationForEvent(.message) { (event, _) in
// Your bot logic here
print(event.message)
}
或者,使用你的 应用程序的 Client ID
和 Client Secret
创建一个可立即启动的 Slack 应用
import SlackKit
let bot = SlackKit()
let oauthConfig = OAuthConfig(clientID: "CLIENT_ID", clientSecret: "CLIENT_SECRET")
bot.addServer(oauth: oauthConfig)
或者,直接调用 Slack Web API
import SlackKit
let bot = SlackKit()
bot.addWebAPIAccessWithToken("xoxb-SLACK-BOT-TOKEN")
bot.webAPI?.authenticationTest(success: { (success) in
print(success)
}, failure: nil)
在 Slack 中配置你的 Slash 命令之后(你也可以将 Slash 命令作为 Slack 应用 的一部分提供),为该路由创建一个路由、响应中间件,并将其添加到响应器
let slackkit = SlackKit()
let middleware = ResponseMiddleware(token: "SLASH_COMMAND_TOKEN", response: SKResponse(text: "👋"))
let route = RequestRoute(path: "/hello", middleware: middleware)
let responder = SlackKitResponder(routes: [route])
slackkit.addServer(responder: responder)
当用户输入该 Slash 命令时,它将命中你配置的路由,并返回你指定的响应。
将 消息按钮 添加到你的响应中以获得更多交互性。
要发送带有操作的消息,请将它们添加到附件中,并使用 Web API 发送它们
let helloAction = Action(name: "hello", text: "🌎")
let attachment = Attachment(fallback: "Hello World", title: "Welcome to SlackKit", callbackID: "hello_world", actions: [helloAction])
slackkit.webAPI?.sendMessage(channel: "CXXXXXX", text: "", attachments: [attachment], success: nil, failure: nil)
要响应消息操作,请使用你的应用程序的验证令牌将带有 MessageActionMiddleware
的 RequestRoute
添加到你的 SlackKitResponder
中
let response = ResponseMiddleware(token: "SLACK_APP_VERIFICATION_TOKEN", response: SKResponse(text: "Hello, world!"))
let actionRoute = MessageActionRoute(action: helloAction, middleware: response)
let actionMiddleware = MessageActionMiddleware(token: "SLACK_APP_VERIFICATION_TOKEN", routes:[actionRoute])
let actions = RequestRoute(path: "/actions", middleware: actionMiddleware)
let responder = SlackKitResponder(routes: [actions])
slackkit.addServer(responder: responder)
Slack 有 许多不同的 OAuth 范围,它们可以以不同的方式组合。如果你的应用程序没有请求正确的 OAuth 范围,你的 API 调用将失败。
如果你使用 OAuth 并且使用“添加到 Slack”或“使用 Slack 登录”按钮进行身份验证,则会自动处理此问题。
对于诸如 OAuth、Slash 命令和消息按钮之类的本地开发,你可能需要使用诸如 ngrok 之类的工具。
不需要整个功能?想要更好地控制底层实现细节?使用 SlackKit 构建的扩展框架
框架 | 描述 |
---|---|
SKClient | 编写你自己的客户端实现 |
SKRTMAPI | 连接到 Slack RTM API |
SKServer | 启动 Slack 应用的服务器 |
SKWebAPI | 访问 Slack Web API |
你可以在 这里 找到几个示例应用程序的源代码。