Skip to content
This repository has been archived by the owner on Jan 28, 2019. It is now read-only.
/ SKRTMAPI Public archive

Connect to the Slack Real Time Messaging API

License

Notifications You must be signed in to change notification settings

pvzig/SKRTMAPI

Repository files navigation

SKRTMAPI has been consolidated into SlackKit

A module for connecting to the Slack Real Time Messaging API.

Installation

CocoaPods

Add SKRTMAPI to your pod file:

use_frameworks!
pod 'SKRTMAPI'

and run

# Use CocoaPods version >= 1.4.0
pod install

Carthage

Add SKRTMAPI to your Cartfile:

github "SlackKit/SKRTMAPI"

and run

carthage bootstrap

Drag the built SKRTMAPI.framework into your Xcode project.

Swift Package Manager

Add SKRTMAPI to your Package.swift

import PackageDescription
  
let package = Package(
	dependencies: [
		.package(url: "https://github.com/pvzig/SKRTMAPI.git", .upToNextMinor(from: "4.1.0"))
	]
)

Run swift build on your application’s main directory.

To use the library in your project import it:

import SKRTMAPI

Usage

Initialize an instance of SKRTMAPI with a Slack auth token:

let rtm = SKRTMAPI(token: "xoxb-SLACK_AUTH_TOKEN")
rtm.connect()

If your bot doesn't need any state information when you connect, pass false for the withInfo parameter:

let rtm = SKRTMAPI(token: "xoxb-SLACK_AUTH_TOKEN")
rtm.connect(withInfo: false)

Customize the connection with RTMOptions:

let options = RTMOptions(simpleLatest: false, noUnreads: false, mpimAware: true, pingInterval: 30, timeout: 300, reconnect: true)
let rtm = SKRTMAPI(token: "xoxb-SLACK_AUTH_TOKEN", options: options)
rtm.connect()

Provide your own web socket implementation by conforming to RTMWebSocket:

public protocol RTMWebSocket {
    init()
    var delegate: RTMDelegate? { get set }
    func connect(url: URL)
    func disconnect()
    func sendMessage(_ message: String) throws
}
let rtmWebSocket = YourRTMWebSocket()
let rtm = SKRTMAPI(token: "xoxb-SLACK_AUTH_TOKEN", rtm: rtmWebSocket)
rtm.connect()