litaio / lita-slack

A Slack adapter for Lita.
MIT License
141 stars 130 forks source link
chatops lita lita-adapter ruby slack slack-bot

lita-slack

Gem Version Build Status

lita-slack is an adapter for Lita that allows you to use the robot with Slack. The current adapter is not compatible with pre-1.0.0 versions, as it now uses Slack's Real Time Messaging API.

Installation

Add lita-slack to your Lita instance's Gemfile:

gem "lita-slack"

Configuration

Required attributes

Optional attributes

Note: When using lita-slack, the adapter will overwrite the bot's name and mention name with the values set on the server, so config.robot.name and config.robot.mention_name will have no effect.

config.robot.admins

Each Slack user has a unique ID that never changes even if their real name or username changes. To populate the config.robot.admins attribute, you'll need to use these IDs for each user you want to mark as an administrator. If you're using Lita version 4.1 or greater, you can get a user's ID by sending Lita the command users find NICKNAME_OF_USER.

Example

Lita.configure do |config|
  config.robot.adapter = :slack
  config.robot.admins = ["U012A3BCD"]

  config.adapters.slack.token = "abcd-1234567890-hWYd21AmMH2UHAkx29vb5c1Y"

  config.adapters.slack.link_names = true
  config.adapters.slack.parse = "full"
  config.adapters.slack.unfurl_links = false
  config.adapters.slack.unfurl_media = false
end

Joining rooms

Lita will join your default channel after initial setup. To have it join additional channels or private groups, simply invite it to them via your Slack client as you would any normal user.

Events

Chat service API

lita-slack supports Lita 4.6's chat service API for Slack-specific functionality. You can access this API object by calling the Lita::Robot#chat_service. See the API docs for Lita::Adapters::Slack::ChatService for details about the provided methods.

API documentation

The API documentation, useful for plugin authors, can be found for the latest gem release on RubyDoc.info

License

MIT