Skip to content

A abstraction layer across messaging app APIs written in GO. Mirror of https://gitlab.com/kavenc/telepathy

License

Notifications You must be signed in to change notification settings

KavenC/telepathy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telepathy

An universal messenger botting platform

pipeline status

Overview

Telepathy implements an abstraction layer of messenger botting APIs. The idea is to decouple messenger APIs with bot logic. With the provided abstraction layer, bot developers are possible to:

  1. Focus on bot logic without struggling with various messenger APIs

  2. Develope once, and the bot is enabled on all supported messenger automatically

  3. Develop functionalities which involve cross-messenger communications (e.g. messesage forwarding between Slack and Discord)

Supported Messengers

Messenger Go Binding
Discord https://github.com/bwmarrin/discordgo
Slack https://github.com/nlopes/slack
LINE https://github.com/line/line-bot-sdk-go

Implemented Bot Features

Message Forwarding

N-to-N message forwarding between any messenger any channels.

image

Twitch Channel Online Notification

Prompt a notification to messenger channel when the specified stream has started/ended.

Demo

To try out the demo implementation, add following bot users to your messenger/channel and send teru help for a list of available commands.

  • NOTICE/DISCLAIMER: Proceed at your own risk!

    • Telepathy does not store any conversation. But the image will be uploaded to https://imgur.com when forwarding message with images.

    • Telepathy is not yet (actually far from) a mature application. All features should not be considered as reliable. We shall not be liable for any consequences resulting from using the bots below.

Messenger Bot Link/QR code
Discord Invite Telepathy
Slack Add to Slack
LINE 加入好友

Hosting

Telepathy is now staging on Heroku. The provided Procfile and Gopkg.toml make it possible to be deployed by git push. Telepathy also depending on:

  • MongoDB: MongoDB Atlas Free plan usaully works.

  • Imgur: For handling image messages.

The following environment variables are necessary:

Variable Name Comment
DISCORD_BOT_TOKEN Discord Bot token
IMGUR_CLIENT_ID Imgur API client ID
LINE_CHANNEL_SECRET LINE API secret
LINE_CHANNEL_TOKEN LINE API token
MONGODB_NAME The database name of MongoDB
MONGODB_URL The MongoDB server url, including account and password. (e.g. mongodb+srv://(username):(authe token)@(database id).mongodb.net/test?retryWrites=true)
SLACK_BOT_TOKEN Slack app bot token
SLACK_CLIENT_ID Slack app client ID (needed for OAuth)
SLACK_CLIENT_SECRET Slack app client secret (needed for OAuth)
SLACK_SIGNING_SECRET Slack message sign secret. (validate Slack reqests)
TWITCH_CLIENT_ID Twitch api client ID
TWITCH_SECRET Twitch api client secret
TWITCH_WEBSUB_SECRET Twitch secret for validating webusub notifications

Note that variables for IMGUR_* and MONGODB_* are needed for Telepathy core. The others can be optional and only needed if you enabled the service/messenger. Service and messenger suport can be disabled by removing importing and configuring lines in cmd/telepathy/telepathy.go

Releases

No releases published

Packages

No packages published

Languages