Luaを使ってTwitter投稿機能を作成します。
いずれは他のSNSにも広げたいけど、今はTwitterだけで。
あと、初心者です。不便で間違ってるかもしれないけど、生暖かい目で見守ってやってください。
1 Lua使う理由って?(前置き)
なんでLuaという言語をわざわざ使おうとしたのか?
ただ例えばソフト内の記述がスクリプト方式であったりすると、処理が軽いといった性能が重視されることがある。
そして一番の理由は僕が使う、とあるアプリケーションの組み込み言語がLuaでバージョンが5.1(ちょっと古い!)だったからだ。
あと、制限がある中で実装するって萌え燃えますよね?
(そもそものきっかけが、Lua使って投稿機能実装の記事が古かったわけだし・・・。)
とまあ、そんな感じで本題入りましょう。
2 実行環境
アプリケーションの都合上、OSはWindows 10(Pro)上にBash(Ubuntu)環境を構築してテストします。
ここはもうダイレクトにBash on Windowsでやります。
(苦労しながらいろいろいじりました。いつか備忘録でアップしようかな)
そして、CUI上であらかた組み切ってしまってからアプリ内に移植する手段をとることにします。
あと、あらかた必要な開発環境は整えておいています。足りなかったら、apt
やyum
使って適宜組み込んでください。
(2017.5.16 追記)
さすがに無責任すぎる気がしたのと、いつか吹っ飛んだ時のためにメモ記事を作りました。
3 Twitter投稿用のAPI
Twitterに投稿なりなんなりする機能ですが、下のリンクに従って作っていくことにしましょう。
てことでこのページに従ってcurlでポストしよう!としたときに少しトラブったので、今回はその回避法まで。
4 どんなエラー?
BoWを導入するとcurlは普通に最初から入っている。Luaも入っている。ただし都合でバージョン5.1を使う。
Luaのバージョン管理はluarocksを使うことにする。
もし入っていなければ、
$sudo -S apt install luarocks
と打ち込み、ユーザーパスワードを聞かれるので打ち込みましょう。
その勢いのまま、
$sudo -S luarocks install lua-curl
と打ち込んだのが運の尽き。
Error: Could not find expected file curl/curl.h for CURL -- you may have to install CURL in your system and/or pass CURL_DIR or CURL_INCDIR to the luarocks command. Example: luarocks install luacurl CURL_DIR=/usr/local
どうしてこうなった?まさかと思ってcurl機能が使えるかを確認する。
$which curl
/usr/bin/curl
問題なさそう。実際機能もしてたしここではない。
てことで、エラーメッセージ最後のCURL_DIR=
を上の場所に指定する、がダメ。実行ファイルなのは知ってるけど、一縷の望みなどなかった。
それでもう少し調べたら、こういうの見つけた。
読むとライブラリ周りの話らしい。てことで、そのあたりの機能を追加する。
$sudo -S apt install libcurl4-openssl-dev
インストール後に再び実行。
$sudo -S luarocks install lua-curl
するとうまくいきました。やったね。
今回はここまで。
実証動作報告は次回以降ということで。