TwitterとMastodonに同時投稿するbot
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
plugins
test
tmp
.editorconfig
.gitignore
Dockerfile
LICENSE
README.md
cmd.sh
config.toml
requirements.txt
run.py
secret.toml.sample

README.md

slackbot-twitoot

SlackからTwitterとMastodonに同時投稿するためのbotです。

使い方

@bot_name ttt つぶやきたい内容

botをチャンネルに追加して↑のようなメンションを送ります。画像を付ける場合はUpload時のコメント欄に書きます。

概要

あの青い鳥の夜逃げに備えて、自分のつぶやきを象さんにバックアップしたいというピンポイントすぎる用途に最適です。

Python3で動きます。つぶやきたい内容をSlackに書くと、RTM APIでそれを受信して、TwitterとMastodonに流します。とても単純です。なのにスパゲティコード🍝

導入方法

三種の神器ならぬ三種のアクセストークンが必要です。

Using Docker

docker-compose.ymlを用意してからdocker-compose upします。 (詳細)

slackbot-twitoot:
  restart: always
  image: ebiiim/slackbot-twitoot
  environment:
    OAUTH_TOKEN:
    BOT_TOKEN:
    TWITTER_CONSUMER_KEY:
    TWITTER_CONSUMER_SECRET:
    TWITTER_ACCESS_TOKEN:
    TWITTER_ACCESS_TOKEN_SECRET:
    MASTODON_URL:
    MASTODON_CLIENT_KEY:
    MASTODON_CLIENT_SECRET:
    MASTODON_ACCESS_TOKEN:

Normal Installation

Clone & Install Requirements

git clone https://github.com/ebiiim/slackbot-twitoot && cd slackbot-twitoot
pip3 install -r requirements.txt

secret.tomlにトークン等を入力 (詳細)

cp secret.toml.sample secret.toml
vi secret.toml

実行

python3 run.py

Changelog

  • 2018-08-09 v0.4.1 ファイル付きpostの仕様変更に対応
  • 2018-05-25 v0.4.0 emojiに対応しました
  • 2018-04-15 v0.3.0 Dockerイメージができました
  • 2018-04-01 v0.2.1 ↓ウソでした(エイプリルフールではありません)
  • 2018-03-25 v0.2.0 画像付きでつぶやけます
  • 2018-02-10 v0.1.0 とりあえずつぶやけます
  • 2018-02-03 hello, world

TODO

  • 機能

    • 画像が複数枚ある場合にも対応する
    • ログ関連をイイ感じにする
  • 既知のバグ

    • たまにRTMのコネクションが切れて落ちる...

事前準備: アクセストークンとsecret.toml

Dockerを使う場合はdocker-compose.ymlenvironment:の各項目に同じように入力します。(''は不要)

[slack]
oauth_token = ''
bot_token = ''

Slack Appを作成し、アクセストークンを入力します。

  1. https://api.slack.com/apps -> Create New App
  2. 左側メニューBot Users -> Add a Bot User
  3. 左側メニューOAuth & Permissions -> Scopes -> files:readfiles:write:userを追加
  4. 左側メニューBasic Information -> Install your app to your workspace からAppをインストール
  5. 左側メニューOAuth & PermissionsOAuth Access Tokenoauth_tokenに、Bot User OAuth Access Tokenbot_tokenに入力
[twitter]
    [twitter.app_1]
    consumer_key = ''
    consumer_secret = ''
        [twitter.app_1.id_1]
        access_token = ''
        access_token_secret = ''

Twitterに投稿するために利用します。

[mastodon]
    [mastodon.server_1]
    url = ''
        [mastodon.server_1.app_1]
        client_key = ''
        client_secret = ''
            [mastodon.server_1.app_1.id_1]
            access_token = ''

Mastodonに投稿するために利用します。

  • urlには利用するサーバのURLを入力してください。(e.g. https://mstdn.jp)
  • ブラウザからMastodonにログインし、設定画面の開発から新規アプリを作成すると残りが埋まります。