Line Bot SDK Swift

MIT License Continuous Integration Swift 4.1

用于 Swift 的 LINE Messaging API 的 SDK。

关于 LINE Messaging API

请查阅官方 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: StringbodyContent: 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)
}