2015-02-03(火) [長年日記]
■ tDiaryをHerokuボタンでデプロイ可能にした
この日記の移行・運用でだいぶノウハウが溜まったので、懸案だったtDiaryのHerokuボタン対応をした。
15年近く前に生まれたCGIプログラムがHerokuのような揮発性のPaaSで動くのは限りなく魔法に近いのだけどそのへんは専門家にだけわかればいいので、Gitとかを勉強することなくブラウザでポチポチするだけで使えるようになるのは単純に良いことです。
というわけで簡単に手順を。環境をいろいろ割り切った結果、認証はTwitter OAuthのみなので、まずはTwitterアプリケーション登録をします。Twitter Application Managementに飛んで「Create New App」をクリック:
![[スクリーンショット]Twitterのアプリケーション登録画面 [スクリーンショット]Twitterのアプリケーション登録画面](https://lh5.googleusercontent.com/-VzmbrswDC0M/VNDVojGCDtI/AAAAAAABcQM/z89KtVT7mGU/s512/Access%252520denied%252520%252520Twitter%252520Application%252520Management%252520-%252520Google%252520Chrome%25252020150203%252520224608.jpg)
必須項目だけでなく、Callbackにも適当なURLを入れる必要がある点に注意(自分のWebサイトでもなんでもいい)。これで「Create your Twitter application」すると:
![[スクリーンショット]Twitterのアプリケーション設定画面 [スクリーンショット]Twitterのアプリケーション設定画面](https://lh4.googleusercontent.com/--R6voqBmklg/VNDVo3HU8nI/AAAAAAABcSM/_AOOy6pswYg/s512/my-test-diary%252520%252520Twitter%252520Application%252520Management%252520-%252520Google%252520Chrome%25252020150203%252520224715.jpg)
この中の「manage keys and access tokens」をクリック:
![[スクリーンショット]Twitterの詳細なアプリケーション設定画面 [スクリーンショット]Twitterの詳細なアプリケーション設定画面](https://lh4.googleusercontent.com/-ikcrlsz7_es/VNDVpWb-snI/AAAAAAABcSU/Pk2cguStrbc/s512/tDiary.Net%252520%252520Twitter%252520Application%252520Management%252520-%252520Google%252520Chrome%25252020150203%252520224826.jpg)
ここの「Consumer Key (API Key)」と「Consumer Secret (API Secret)」をあとで使うので控えておく。
続いてHeroku上にtDiaryをデプロイします。言うまでもなくHerokuのアカウントは取得済みとします。もしかするとクレジットカードを登録しないと使えないかも知れないけど、今回デプロイするtDiaryは無料の範囲で使えます。
で、GitHub上のtDiaryのリポジトリにアクセス。スクロールするとREADME.mdが表示されてます:
![[スクリーンショット]GitHub上にあるtDiaryのREADME [スクリーンショット]GitHub上にあるtDiaryのREADME](https://lh3.googleusercontent.com/-bi6ptSfKpEU/VNDVp2OnU3I/AAAAAAABcQk/6K7ZOB7P4OU/s512/tdiarytdiary-core%252520-%252520Google%252520Chrome%25252020150203%252520224337.jpg)
この中の紫色のボタン「Deploy to Heroku」をクリック:
![[スクリーンショット]Heroku上のアプリケーション作成画面 [スクリーンショット]Heroku上のアプリケーション作成画面](https://lh3.googleusercontent.com/-8yg6pp4utmY/VNDVqFXu_kI/AAAAAAABcQs/tt7_LBN5tPs/s512/Create%252520a%252520New%252520App%252520%252520Heroku%252520-%252520Google%252520Chrome%25252020150203%252520224455.jpg)
Herokuへ飛んで、アプリケーションを作成する画面になります。「App Name」にはお好きなものを(これがホスト名になる)。スクロールするとその他の設定項目が:
![[スクリーンショット]Herokuの設定画面 [スクリーンショット]Herokuの設定画面](https://lh5.googleusercontent.com/-pAZZxlUX8SQ/VNDVqg-mGhI/AAAAAAABcSc/NquNtDQA7fs/s512/Create%252520a%252520New%252520App%252520%252520Heroku%252520-%252520Google%252520Chrome%25252020150203%252520224842.jpg)
ここに先ほどのTwitterアプリのキーを入力。上に「Consumer Key (API Key)」、その下に「Consumer Secret (API Secret)」。また、ログイン時に使うTwitterのアカウント名を指定。そしておもむろに「Deploy for Free」をクリックすると、デプロイ作業が始まるので進行状況を見ながらしばらく(1分くらい)待つとページ最下部に「View it」というリンクが現れるのでそれをクリック!!
![[スクリーンショット]tDiaryが動いてる!! [スクリーンショット]tDiaryが動いてる!!](https://lh4.googleusercontent.com/-Xc8DPHKD3RM/VNDVrIHnpVI/AAAAAAABcQ4/xwDnsNJuTus/s512/%2525E3%252580%252590%2525E6%252597%2525A5%2525E8%2525A8%252598%2525E3%252581%2525AE%2525E3%252582%2525BF%2525E3%252582%2525A4%2525E3%252583%252588%2525E3%252583%2525AB%2525E3%252580%252591%252520-%252520Google%252520Chrome%25252020150203%252520225231.jpg)
めでたくtDiaryが稼働しました。わーい。
ここでちょっと未解決の問題があって、このページは「https」なんだけど、tDiaryが想定しているのが「http」なものだから、このままだと更新ができない。いったんURLを「https:~」から「http:~」に書き換えてもらってから使うと問題なく動作します。また、いったんhttpで設定画面に入ってから「日記のURL」に入っているURLをhttpsに書き換えると、httpsでいけるようになります(がテーマの表示などで問題が出ると思う)。このへんは解決していくつもり。(追記: 現在はhttpsでも利用できるようになっている)
なお、フルスペックのtDiaryからは以下の点で制約があります:
- サーバ上にファイルを残すことを前提にしているプラグイン(代表的なのはimage)は使えない。imageの代わりにはGoogle+上の画像を引用できるpicasaプラグインを推奨
- (上と同じ理由で)「本日のリンク元」機能は使えない
使える記述スタイルはWikiスタイルのみ (改善予定)Wiki・RD・GFMが利用可能になった(select-styleプラグインで切り替え可能)- (以下加筆予定)
それではお楽しみ下さい。既存データの移行方法や運用ノウハウなんかはいずれ別項で書いた:
callbackは何でもいいとありますが、 http://sho.tdiary.net/20180614.html に書かれているように、「<日記のURL>/update.rb/auth/twitter/callback」でないとだめみたいですね。
おっしゃるとおり、この記事はTwitterの仕様変更に追従できていませんね。どこか公式の場所に移してアップデートしないと……