たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

コマンドラインで定時ツイートする方法

   

手順

まじめにtwitter APIとかをやっていくのもありなんでしょうけど、ここは先人の作られた便利なツールをつかってやってみましょう

twitterをCLIで操作するツールのインストール

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になるので注意です

ではでは

 - Go, プログラミング系 ,