読者です 読者をやめる 読者になる 読者になる

クフでダローバルな日記

タフでもグローバルもない

3ステップで自分の同時通訳twitter botを作りましょう

お久しぶりです。ようやく学科にも慣れてきましたが、色々とつらいです。

さて、最近もちょくちょくtwitter botを作っていたわけですが、ちょっと前にこちらの記事が人気を博しているのを読みました。
自分をコピーするbotを作る - naoty.to_s
Deploy To Herokuボタンってそうやって使えるのか……と感化され、楽しそうだったので僕も作ってみました。
mazamachi/twitrans_bot

概要

グローバル化している今、あなたのツイートも世界に向けて発信しましょう。え?語学力が足りない?だったら翻訳してもらえばいいんです。Microsoftの高性能翻訳があなたのツイートを自動で翻訳し、botとしてツイートしてくれます。
基本となる物は既に作ってあるのでプログラミングスキルは一切不要です。
必要なステップはたった3つ。
1. Microsoftアカウントを翻訳用に認証
2. Twitter bot用アカウントの作成と認証
3. 既存のコードをHeroku上にアップして設定
です。
※今回は残念ながら鍵垢(非公開アカウント)には対応していません。時間があったら作ってみます。

Microsoftアカウントを翻訳用に認証

まずは翻訳してくれるようにmicrosoftで登録する必要があります。Microsoft Translator | Microsoft Azure Marketplace にアクセスし、右にあるリストから0円のものを購入しましょう。無料プランだけでも月2,000,000文字が翻訳できるので、ツイートを翻訳する程度なら全く問題ないはずです。
Microsoftアカウントを持っていなければ作るようお願いします。
f:id:SWIMATH2:20141121174610p:plain

次はSign In にアクセスし、アプリ登録をクリック。クライアントIDや名前、説明は自分で好きなもので構いません。リダイレクトURIも適当で構いません。この時表示されるクライアントIDと顧客の秘密をメモしておいてください。
大事なものなので人には教えないようにしてください
f:id:SWIMATH2:20141121174703p:plain

Twitter bot用アカウントの作成と認証

Welcome to Twitter - Login or Sign upにアクセスし、bot用アカウントを作ってください。これに関しては説明は不要でしょう。

次にTwitter Application Managementにアクセスし、Create New Appを押してMicrosoftの時と同様アプリ登録をします。ただし、この時ログインするアカウントはbotのアカウントにしてください。名前や紹介やURLを適当に入力して同意して進むと、botが作成されます。
f:id:SWIMATH2:20141121174834p:plain
ただし、この段階ではこのbotは投稿ができないので一番右の"Permissions"からRead and Writeに変更してUpdate Settingsを押してください。
f:id:SWIMATH2:20141121174904p:plain
その後「Keys and Access Tokens」タブの下の方から Create my access tokenを押してください。以下のように表示されたConsumer Key,Consumer Secret,Access Token,Access Token Secretをメモしておいてください。
f:id:SWIMATH2:20141121174920p:plain

既存のコードをHeroku上にアップして設定

最後です。mazamachi/twitrans_bot · GitHubにアクセスし、deploy to herokuボタンを押してください。(herokuのアカウントを持っていなければ作る必要があります)
下の方にパラメータの入力欄があるので、これまでにメモしておいたキーなどを入力してください。

パラメータ名 入力するもの
LANGUAGE_FROM 自分がツイートする言語 ※1
LANGUAGE_TO 翻訳した言語 ※1
MENTION_NOT_INCLUDE リプライを翻訳するか ※2
USER_IDS 翻訳させるアカウントのid(","で区切ってください) ※3
TRANS_CLIENT_ID MicrosoftでメモしたクライアントID
TRANS_CLIENT_SECRET Microsoftでメモした顧客の秘密
BOT_CONSUMER_KEY TwitterのConsumer Key
BOT_CONSUMER_SECRET TwitterのConsumer Secret
BOT_ACCESS_TOKEN TwitterAccess Token
BOT_ACCESS_TOKEN_SECRET TwitterAccess Token Secret

※1 言語の種類はen,jaのように略称で入力してください。それぞれ1つだけです。言語一覧はTranslator Language Codesで参照できます。
※2 リプライを翻訳するか決めます。デフォルトでは含めないようになっているので、リプライを含めたければこれを false に変えてください。(FALSEやFalseでもダメです)
ただしあまりオススメはしません。というのも、翻訳されたツイートがリプライとなって相手に届いてしまうからです。若干迷惑ですね。
※3 例えば、today_prime_bot,today_pi_bot, HatenastarRank のようにしてください。

そうしたらページ最下部の Deploy for Free をクリックして、最後の設定をします。まだbotは登録されただけで動いていないので Resources からDynosのEditをクリック、ドラッグして1に変えてください。(止めたいときは逆に0にすれば良いです)
f:id:SWIMATH2:20141121174943p:plain


以上でbot完成です。お疲れ様でした。もし何か修正したければ HerokuのSettingでReveal Config Varsから修正することが出来ます。
実際に動かした方でなにか不具合があれば、ぜひコメントなどでご報告をお願いします。アドバイスとかもしていただければ泣いて喜びます。