PerfectSlackAPIClient 是一个 API 客户端,用于从您的 Perfect 服务端 Swift 应用程序访问 Slack API。 它构建于 PerfectAPIClient 之上,PerfectAPIClient 是一个网络抽象层,用于从您的 Perfect 服务端 Swift 应用程序执行网络请求
要使用 Apple 的 Swift 包管理器 进行集成,请将以下内容作为依赖项添加到您的 Package.swift
中
.package(url: "https://github.com/SvenTiigi/PerfectSlackAPIClient.git", from: "1.0.0")
这是一个 PackageDescription
示例
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "MyPackage",
products: [
.library(
name: "MyPackage",
targets: ["MyPackage"]
)
],
dependencies: [
.package(url: "https://github.com/SvenTiigi/PerfectSlackAPIClient.git", from: "1.0.0")
],
targets: [
.target(
name: "MyPackage",
dependencies: ["PerfectSlackAPIClient"]
),
.testTarget(
name: "MyPackageTests",
dependencies: ["MyPackage", "PerfectSlackAPIClient"]
)
]
)
为了向您的 Slack 频道发送消息,您必须为您的 Slack 工作区生成一个 Webhook URL
。 请查看 Slack API 的 Hello world 示例。 成功生成 Slack Webhook URL 后,您可以配置 SlackAPIClient
。
// Configure the Webhook URL
SlackAPIClient.Configuration.webhookURL = "YOUR_WEBHOOK_URL"
建议在启动 PerfectHTTPServer
之前,在您的初始化代码中设置 Webhook URL。
以下示例演示了如何发送 SlackMessage
。
import PerfectAPIClient
import PerfectSlackAPIClient
// Initialize SlackMessage
var message = SlackMessage()
message.text = "Hello Developer".toMarkdown(format: .code)
// Initialize SlackAttachment
var attachment = SlackAttachment()
attachment.title = "Mindblown 🤯"
attachment.imageURL = "https://media.giphy.com/media/Um3ljJl8jrnHy/giphy.gif"
// Add the attachment to the message
message.attachments = [attachment]
// Send SlackMessage
SlackAPIClient.send(message).request { (result: APIClientResult<APIClientResponse>) in
result.analysis(success: { (response: APIClientResponse) in
// Check out your Slack-Channel 😎
print(response.payload) // "ok"
}, failure: { (error: APIClientError) in
// SlackMessage could not be sent 😱
// Perform error.analysis(....) to get more information
})
}
有关 APIClientResult
、APIClientResponse
和错误处理的更多详细信息,请查看 PerfectAPIClient。
SlackMessage
提供了两个重要的功能,将在接下来的章节中进行解释。
您可以从您的 SlackMessage
生成 Slack 消息构建器 URL,以简要了解您的消息将如何在您的 Slack 频道中呈现。
// Initialize SlackMessage
let message = SlackMessage(text: "Posted via PerfectSlackAPIClient")
// Print Slack Message Builder Preview URL
print(message.messageBuilderPreviewURL)
此示例将生成以下 URL
作为发送 SlackMessage
的替代方法,该对象本身具有一个便捷函数 send
,可以简单地发送后即忘,或者提供 success
和 failure
闭包。
// Initialize SlackMessage
let message = SlackMessage(text: "Foo Bar")
// Send and forget
message.send()
// Success and failure closure
message.send(success: { (response: APIClientResponse) in
// Success
}, failure: { (error: APIClientError) in
// Failure
})
所有属性均已在 Slack Messages API 定义中完整记录。 完整的文档可以在 https://api.slack.com/docs/messages 中找到。
PerfectSlackAPIClient 使用以下依赖项
非常欢迎贡献 🙌 🤓
MIT License
Copyright (c) 2018 Sven Tiigi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.