用于 Swift 的 LINE Messaging API 的 SDK。
请查阅官方 API 文档获取更多信息。
英语: https://devdocs.line.me/en/
日语: https://devdocs.line.me/ja/
将依赖项添加到 Package.swift。
.package(url: "https://github.com/happiness9721/line-bot-sdk-swift.git", .upToNextMajor(from: "2.0.0"))
我只提供了 Vapor 示例代码,因为只在这个框架上进行了测试。
如果您使用其他框架,您只需要提供 signature: String
和 bodyContent: String
的参数。
欢迎发送 PR 来提供其他框架的示例。🖖
Vapor 2
post("callback") { request in
let bot = LineBot(accessToken: "ACCESS_TOKEN", channelSecret: "CHANNEL_SECRET")
guard let content = request.body.bytes?.makeString() else {
return Response(status: .badRequest)
}
guard let signature = request.headers["X-Line-Signature"] else {
return Response(status: .badRequest)
}
guard bot.validateSignature(content: content, signature: signature) else {
return Response(status: .badRequest)
}
guard let events = bot.parseEventsFrom(requestBody: content) else {
return Response(status: .badRequest)
}
for event in events {
switch event {
case .message(let message):
let replyToken = message.replyToken
switch message.message {
case .text(let content):
bot.reply(token: replyToken, messages: [.text(text: content.text)])
case _:
break
}
case _:
break
}
}
return Response(status: .ok)
}