コマンドラインで定時ツイートする方法
手順
まじめにtwitter APIとかをやっていくのもありなんでしょうけど、ここは先人の作られた便利なツールをつかってやってみましょう
twitterをCLIで操作するツールのインストール
- mattnさんのtwitterCLIツール「twty」
GitHub - mattn/twty: command-line twitter client written in golang - goのインストール(goが入っていないひと)
Getting Started - The Go Programming Language
cron設定
たとえばこんな内容のシェルスクリプトを準備
twty おはよう
これを仮に"tweet.sh"として保存
たとえば平日の10時におはようと自動的につぶやきたい場合にはcrontabエディタを開いて
00 10 * * 1-5 bash /full/path/to/script/tweet.sh
とすれば、cronをつかって定時ツイートすることができるようになります
補足
.config/twty/にAuth情報が格納されます。
正しくシステムが動作するには、
./twty -a 利用するアカウント名
./twty -v
を実行し、
settings-利用するアカウント名.json
settings.json
のふたつのファイルがあるとよい?ような感じ?です
※2020.02.15追記
twty
を実行して
.confing/twtyに
settings.jsonだけあればよいようです。
homeディレクトリからコマンドを実行したい場合
下記を.bashrcに追記
export PATH=$PATH:~/go/bin/
twtyコマンドを直接cronから実行したい場合
かつ、とあるtxtファイル(hoge.txt)内に書き込まれた内容を平日の10時につぶやきたい場合
twty -h
で、how to useの確認。
-ff FILENAME: post utf-8 string from a file("-" means STDIN)
ファイルからエンコードutf-8の文字型のデータをつぶやくには、'-ff'オプションを使用します
例:hoge.txtの内容
おはよう
こんにちは
やっほー!
00 10 * * 1-5 /path/to/go/bin/twty -ff /file/path/to/contents/wanna/be/tweet/hoge.txt
これで平日の10時にhoge.txtに書き込まれた内容がそのまま(改行もそのまま)つぶやくことができます
ちなみに
cronの設定ですが、
crontab -eで設定できます。ただし、crontab -rというコマンドがあって、これを実行するとcrontabで設定したものが確認なしに消去されます。(rキーはeキーの右隣...!)
こわいお話:https://qiita.com/shuntaro_tamura/items/c759bc318859a1203211
なので、間違って消しちゃった!みたいなことになりたくない人は
cd ~
cd /etc/cron.d/
sudo vim wantosetcron
でcronの設定をしたほうがよいです。このとき、cronコマンドのまえに確実に明示的に実行ユーザを設定しないとerrorになるので注意です
ではでは