先日帰省時に
とんでもないバスに遭遇した。その名も京阪バス。KEIHAN BUS.客の乗降についてあるまじき出来事。
バスの運行について詳しい人がいたら教えて。
携帯番号を書いておいたので電話が掛かってきた。
から始まる問答でいろいろ聞き出したところ、
飛行機のフライトレコーダーのようなものがバスにもあり、あるバス停に「いつ止まっていつ発車したか」
が秒単位でわかるらしい。
これは知らなかった。
「5秒で行ってもうたやろが」はっきり言えることとしては、バスのレコーダーによる停止発車の管理は適当というか異常に甘い。5km/h切ったら停車したとかにしてるのかな?と思ったけど、それだと信号でも反応するので手動か。いやさすがにそこまでいい加減じゃないだろう。バス停の近くで5km/hとかが条件か?
「いやあ、40秒停車してたんですけどねぇ」絶対嘘。ネバー!
「ドアは開けたんですが」開けてへん。5秒で開閉したってか。乗せる気ないやろ。 いつからバスは空気運搬車になった?(客も乗ってたけど) いや別にそこまで怒り狂って無いけど、握りつぶされそうな気がしなくもないので書いておく。 乗るけどね、京阪バス。
結論、動いた。 とりあえずオウムを作りたいと思いLINE@とか登録する。
config.ruが必要らしいので作成。これはLINE関係なくてRackの仕様。 http://please-sleep.cou929.nu/deploy-sinatra-app-to-heroku.html
https://peixe.herokuapp.com/callback とWebhook URLを設定して叩く。 heroku logs によると 「404や 死ねや」→ 管理画面をよく見ると https://peixe.herokuapp.com/callback**.php** ってなってた。拡張子消したら404が200になった。俺が死ぬべき。 でもLINEがオウムしない。
https://peixe.herokuapp.com**:443**/callback と443をつけろという記事があったが不要だった。 でもLINEがオウムしない。
https://peixe.herokuapp.com/callback に対してGETの定義をしてブラウザで叩き、アプリが動いてることはわかった(ローカルでやっとけや) でもLINEがオウムしない。
アプリのログはheroku logs -tで眺められるがそこに独自ログ吐く方法が不明 $stdout.sync = true としとけばSTDERR.putsでもputsでも吐けて、heroku logs -t で眺められる。 でもLINEがオウムしない。
http://yone098.hatenablog.com/entry/2016/04/10/032451 設定したコールバックが呼ばれない
私は1日ほどして正常にコールバックが呼ばれるようになりましたが、作成当初は bot にLINE メッセージをしてもコールバックが呼ばれず、何が悪いのか検討もつかなかったです。 しかし翌日になると正常にコールバックが呼ばれるようになったので、LINE developer で Callback URL を設定しても即反映ではなさそうですので気をつけてください。
ああ、俺無罪か。 ログ吐いたらコールバック通ってることが確定。orz でもLINEがオウムしない。
APIを呼ぶにはWhitelistにIPを登録する必要があるので、Herokuなどで動かす事はできません。 LINE BOT をとりあえずタダで Heroku で動かすを見ると、Fixieっていうアドオンを使えばHerokuでも行けるそうです。
とか言ってたけど、なんやWhilteList空でええやんけ!!!しばくぞ!!!! 公式見てもoptionalやった。てへ。 Fixieもいらんのだろうな。→なくても動いた
cronのように毎日同じ時刻に送信する方法を探している。doc見る限りそんなAPIは無さげだが、Heroku Schedulerというアドオンがあった。まずは単純に1発送信するソースを用意。
require 'line/bot' # gem 'line-bot-api'
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = *secret* #実際は埋め込み
config.channel_token = *token* #実際は埋め込み
}
end
message = {
type: 'text',
text: '怒髪天'
}
response = client.push_message( uid, message)
こんなsay.rbをdeployして、 heroku run bundle exec ruby say.rb とかすると配信された。後はtokenとかを埋め込まず環境変数とかで与えればよいか?
heroku config:set LINE_CHANNEL_SECRET=*シークレット*
とかすると渡せた。よって上記ソースも
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
などと書ける。
単発は出来たので、スケジュールする。Heroku Schedulerに、
bundle exec ruby say.rb
を登録。毎日決まった時間に配信されるようになった。
今風に近づく43歳。
記事
カテゴリ
Amazon | Android | apache | Arduino | AWS | bash | bluetooth | Books | CakePHP | CakePHP3 | CakePHP4 | Chrome | Chromebook | CodeIgniter | CSS | Docker | Eclipse | Emacs | etc | Firefox | Flask | Gadget | git | Gnome | Google | Heroku | HTML | hugo | Internet | iPhone | IS01 | IS03 | Java | JavaScript | json | Kotlin | Laravel | LINE | magento | mysql | nginx | nodejs | Oops | PC | Perl | php | Python | Qt | Ruby | ruby | Shell | ssh | tdiary | twitter | ubuntu | unix | VirtualBox | Web | Windows | windows | WindowsMobile | WX5 | YAML | zsh | ここか | そば | つくる | つり | できごと | アクアリウム | ギター | セキュリティ | プリンタ | ベース | ボクシング | ポエム | マネー | メシ | ラズパイ | 仕事 | 作家 | 壮絶 | 妄想 | 忘れる | 料理 | 旅 | 暑い | 痛い | 社会 | 自転車 | 豚 | 車 | 車輪 | 酒 | 野球 | 銭湯 | 音楽 | 食
全部 : / 今日 :
近頃
profile