2018-06-14(木) [長年日記]
■ Twitterの仕様変更でHeroku Review Appsが使い物にならなくなった
今日、dependabotやtachikoma.ioが送りつけてきたプルリクを動作確認しながら淡々とやっつけていたら、あるWebアプリが動かない。ログにはmemcache(?)で認証(?)関係のメッセージが出ていたので、利用しているMemcacherサービスのトラブルかと思ったらそうではない*1。いろいろたどっていくとTwitter が OAuth 認証時 Callback URL をチェックするようになったみたいという記事をみつけた。これかぁぁぁ。Twitterからのアナウンスは1ヶ月前にあったということなので、まぁ知らずにほっといたおれが悪い。ちゃんと設定すれば問題ない(後述)。productionやstaging環境なら。
問題は、Heroku Review Appsである。
Heroku Review AppsとはHeroku Pipeline内の一機能で、GitHub上に作られたプルリクエスト単位で自動的にそのインスタンスを作ってくれる超便利機能である。つまり:
- プルリクがくる
- 自動でCIが走る
- 自動で作られたレビュー用のアプリで動作チェックする
- プルリクをmasterにマージ
- 自動でstaging環境にデプロイ
……みたいな流れを作れるので、ほんとこれなしで開発するなんて、いまではもう考えられないくらい。
で、そういう流れにTwitter OAuth認証を組み込んだアプリを入れてあると、今回の仕様変更が壁になる。今回の変更でTwitterはCallback URLsをホワイトリストとして厳密にマッチングをするようになったのだけど、Review Appは毎回URLが変わる*2ので、あらかじめ設定しておくことができない。つまりReview AppではTwitter認証が必要な機能をテストできない。
とりあえず今日のところはスマートな解決策が見つからない。動作チェックするたびにReview AppのURLをCallbackに設定するとか、そんなんやってられないしなぁ。もしくはいったんdevブランチへマージして、dev用のアプリ(URL固定)で動作チェックするようにフローを変更するか。でも内部的にはそういうルールを作れても、外部からきたプルリクはmaster宛だしなー。GitHubのDefault branchをdevにすれば運用できるとはいえ、面倒が増えることに変わりはない……。とりあえず小さいアプリで後者の策を試してみるか。
さきほど「ちゃんと設定すれば問題ない」と書いたが「ちゃんと」は自明ではない。tDiaryをHerokuで動かしてる人もいると思うが、ちょっと罠があるので注意が必要。
https://apps.twitter.com/ へアクセスして、認証に使っているアプリのページへ移動、Settingsタブを開く。その中のCallback URLsに適切なURLを指定しなくてはならないのだが、tDiaryの場合はこう(「hoge」部分は自分のサイトに合わせる):
https://hoge.herokuapp.com/update.rb/auth/twitter/callback
途中にはさまってる「update.rb」がポイント。tDiaryでは認証を要求してくるのはupdate.rbなので、これを入れ忘れるとうまく動かない。
2018-06-12(火) [長年日記]
■ ミリシタイベント プラチナスターシアター「Eternal Harmony」
ミリシタ1周年を前にして、今回から(ようやく)上位報酬の下限が下がった。順位でなく累積ポイント(3万pt)で1枚ゲット。はー、ここんとこ4万pt取ってても下限の5万位に入れなくなってたからなー。これでやっとマイペースでイベントこなせるかな。
……とみんな同じことを考えていたようで、3万ptちょっと稼いで終わったら、5万位以内に入れてしまった。まぁそんなものか。でも両方合わせてマスターランク1にはなったりしないもよう。よくわからん。5万位以内だと衣装が手に入るのかな?
待ちに待った「Eternal Harmony」ってことでよかったけど、ちょっと苦手なリズムが含まれているため、たぶんこれのMMixもフルコンはできなさそうだ。コミュはこれから見る。
THE IDOLM@STER LIVE THE@TER HARMONY 04 アイドルマスター ミリオンライブ!
ランティス
¥1,077
2018-06-11(月) [長年日記]
■ 映画「ピーターラビット」を観てきた
観てきた人の誰一人として満足そうだったので、これは観ておかねばなぁと思い、時間を作ってちょっくら観てきた。
こういう映画、「特撮*1すげー」という評価はもう、しなくていいんだろう。「アバター」で(計算コストの低い)のっぺりとした生物と人間を同じ画面に収めたのに始まり、「猿の惑星」で人間によく似た毛むくじゃらの生物を描いたのちの、人間のように振る舞ううさぎたちを実写映像に入れ込んだこの作品は、もうそのことで驚いたりするものではない。現代の映画では、これくらい当たり前のものとして受け入れるしかない。
なので、ようやく「普通に映画として」面白いかどうかだけを評価すれば良くなったってことだよな。いいことだ。
そういう観点では、悪知恵が働くアンモラルなうさぎどもと人間の、仁義なき戦いをユーモアたっぷりに描いていて、お見事。隅から隅まで楽しんだ。エンターテイメント映画として十分に傑作。
とはいえ、終わってから振り返ると、ビアがうさぎたちの「正体」にいっさい気づいていなかったのが、実はけっこう不気味なんじゃないのと思った。彼女が最後に気づくフックとしての「ウィンク」がそれまで繰り返し登場しているのが、そのことを強調している。マグレガーが早々に気づいていたのと対象的に、ビアの鈍感ぶりは異常だ。自然が人間に敵対的かそうでないかは敵対的に決まってるんだけど、ビアの存在は能天気な「自然主義者」(カッコつき)を揶揄するために作られたのではないだろうか。
*1 言い方がもう古い。
◆ sorah [sign in with Twitter を切った consumer token を review app で使えば..]
◆ ただただし [そんな機能が! ちょっと勉強して試してみる。ただ(stagingじゃなくて)review appsにだけ特別な環境変..]
◆ ただただし [関係なかったっぽい >Sign in with Twitter そもそも既存のkeyはどれもここのチェックなど入っ..]
◆ こうた [まさに同じ状態を経験しました<(_ _)> 参考になる情報ありがとうございます!]