SlackKit 4.7.0

SlackKit 4.7.0

测试已测试
语言 SwiftSwift
许可证 MIT
发布上次发布2021年12月
SPM支持 SPM

Peter Zignego 维护。



SlackKit 4.7.0

SlackKit

Build Status

Swift Version Plaforms License MIT SwiftPM compatible Carthage compatible CocoaPods compatible

SlackKit:Swift 中的 Slack 应用

描述

SlackKit 简化了使用 Swift 构建 Slack 应用。

它旨在提供 Slack 的实时消息 API以及可由 机器人用户访问的网页 API的所有功能。SlackKit 还支持 Slack 的OAuth 2.0 流, 包括 添加到 Slack通过 Slack 登录 按钮, 入站 webhook斜杠命令,以及 消息按钮

安装

Swift 包管理器

SlackKit 添加到你的 Package.swift

let package = Package(
	dependencies: [
		.package(url: "https://github.com/pvzig/SlackKit.git", .upToNextMinor(from: "4.6.0"))
	]
)

当使用 Swift 包管理器构建时,SlackKit 默认包含 vapor websocket 框架,它需要 libressl。

您可以使用 homebrew 安装它:brew install libressl

有关更多信息,请参阅 SKRTMAPI 的 readme

Carthage

SlackKit 添加到您的 Cartfile

github "pvzig/SlackKit"

SlackKit 现在正在使用 .xcframeworks。当使用 Carthage 构建依赖项时,请指定一个平台:carthage bootstrap --use-xcframeworks --platform macos

CocoaPods

SlackKit 添加到您的 Podfile

pod 'SlackKit'

用法

要使用库,请将其导入到您的项目中

import SlackKit

基础知识

使用 API 令牌创建一个机器人用户

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)
}

或者使用您的 应用程序的 客户端 ID客户端密钥 创建一个可立即发布的 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 中配置您的斜杠命令后 (您也可以作为 Slack App 的一部分提供斜杠命令),创建一个路由、该路由的中介响应,并将其添加到响应器中

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)

当用户输入该斜杠命令时,它将调用您配置的路由并返回指定的响应。

消息按钮

消息按钮添加到您的响应,以增加额外的交互性。

要发送包含操作的消息,请将它们添加到附件中,并使用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)

要响应消息操作,请向您的SlackKitResponder添加一个带有MessageActionMiddlewareRequestRoute的请求,并使用应用程序的验证令牌。

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)

OAuth

Slack有许多不同的OAuth作用域,可以以不同的方式组合。如果您的应用程序没有请求适当的OAuth作用域,API调用将失败。

如果您使用OAuth和添加到Slack或使用Slack登录进行身份验证,这会为您处理。

对于OAuth、斜杠命令和消息按钮之类的本地开发,您可能想使用像ngrok这样的工具。

高级使用

不需要整个香蕉?希望更细粒度地控制底层实现细节?使用SlackKit所构建的可扩展框架

框架 描述
SKClient 编写自己的客户端实现
SKRTMAPI 连接到Slack RTM API
SKServer 为Slack应用程序启动一个服务器
SKWebAPI 访问Slack Web API

示例

您可以在这里找到几个示例应用程序的源代码。

教程

联系我们

Twitter: @pvzig

Email: [email protected]