水温botの不可解なエラーの正体はまさかのw
2017-03-15
サーバー移転後REDPEPPERSは概ね引越し作業が終わりました。「オレの釣り」の投稿システムは未着手だけど、見る側は問題ない(はず)。
けど水温BOTは長いことトラブってます(´・ω・`)
サーバーが指定した時刻になったら自動でプログラムを起動するcronていう仕組みを使っています。
琵琶湖水温は朝1回だけツィートしてDBに水温データ書いてまとめサイトで表示。
霞ヶ浦水系水温は一日に3回ツィートして夕方18時の時にDBに水温を書く、っていう流れ。
最初の頃cronの設定自体間違ってて何日か失敗。やっとその問題はクリアできて琵琶湖水温は安定して動いてるけど霞ヶ浦水温が不安定。
そもそもコンピュータプログラムに於いて「不安定」ってこと自体異常w プログラムを一切変えてないのに動くときと失敗するときが混在するっていう謎の現象。
サーバー側からは以下のエラーが帰ってくる。
Warning: file_get_contents(https://api.twitter.com/1.1/statuses/ update.json): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
毎回403エラーなら解決策を探しようがあるけど、朝6時と昼12時はOKだけど18時だけ失敗とか逆に18時だけ成功で朝昼が失敗とかいう怪奇現象がw
api.
403はtwitter側が「禁止!」って言ってるエラー。公式サイトによれば
403Forbidden
The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. This code is used when requests are being denied due to update limits . Other reasons for this status being returned are listed alongside the response codes in the table below.
で、https://dev.twitter.com/overview/api/response-codesの下の表みると403の原因がめっちゃ多い((((;゚Д゚))))
BOTって認証関係が複雑なので最初はそこを疑ったけど成功する時もあるしなぁ。短時間に何回もツィートしてるわけでも無い。内容が全く同じツィートをしてるわけでもなし。こりゃ参った!
って八方塞がり・・・・・
が・・・
ん?
もしかして?
自動tweetしようとして403エラーが発生した時の内容が以下。
3/14 18時の水温
■霞ヶ浦水温
湖心 9.1
麻生 9.7
掛馬 9.6
■北浦水温
安塚 10.3
釜谷沖 9.4
神宮橋 10.6
■常陸利根下流 9.9
■利根川(小見川) 10.8
まとめ http://bit.ly/k_suionPHP
なんか長くね?w
試しに手動でツィートしようと中身をコピペしてみたら
はい、そうです。単に140文字をオーバーしてました(*´ω`*) それが原因の403エラーでした。なんというアナログ的なエラーw
おそらく今まではギリギリ140文字に収まってたけど、各地の水温が二桁になってオーバーしたものと思われます。なのでたぶん去年の暖かい時期はたくさんツィートし損ねていたんですね((((;゚Д゚)))) オレ自身、真剣に見てないので全然気づきませんでしたスイマセンw
認証が絡むから一番面倒そうな403エラーだったけど原因は単に「文字長すぎ」っていうオチでした(*´ω`*)
てことで可能な限り不要な文字(見出しの■とか)をギリギリまで削除してみました。明日からは安定稼働するはず!!!
カテゴリ:日記・携帯更新