Project

General

Profile

環境対応 #536

新規インストールしたmikutterが起動しない

Added by Satoshi Okuno almost 8 years ago. Updated almost 8 years ago.

Status:
終了
Priority:
高め
Target version:
Start date:
2012-11-23
Due date:
% Done:

0%

プラグイン名:

Description

新規インストール(~/.mikutterがない状態)のmikutterが以下の例外で起動しなくなりました。
(Twitter側の仕様変更?)

・事象
/Users/moguno/mikutter/core/lib/mikutwitter/query.rb:70:in `query!': 400 #<Net::HTTPBadRequest:0x2d68ad8> (MikuTwitter::Error)
from /Users/moguno/mikutter/core/service.rb:187:in `user_initialize'
from /Users/moguno/mikutter/core/service.rb:52:in `initialize'
from /Users/moguno/mikutter/core/service.rb:23:in `new'
from /Users/moguno/mikutter/core/service.rb:23:in `services_refresh'
from /Users/moguno/mikutter/core/service.rb:28:in `all'
from /Users/moguno/mikutter/core/service.rb:33:in `primary'
from /Users/moguno/mikutter/mikutter.rb:37:in `<main>'

・原因
http://api.twitter.com/1/account/verify_credentials.json
へのアクセスに対して、リザルトコード400で以下のようなjsonが返ってきていました。 {"errors":[{"message":"Bad Authentication data","code":215}]}

・対策
AdHocですが上記のjsonが返ってきた場合は、認証ウインドウを表示するようにしました。
パッチを添付しますので確認をお願いします。


Files

a.patch (805 Bytes) a.patch Satoshi Okuno, 2012-11-23 10:39
#1

Updated by Satoshi Okuno almost 8 years ago

すみません。core/lib/mikutwitter/connect.rbのパッチです。

#2

Updated by toshi_a 初音 almost 8 years ago

  • Tracker changed from 致命的 to 環境対応
  • Status changed from パッチ適用待ち to 実装待ち
  • Assignee set to toshi_a 初音
  • Priority changed from 通常 to 高め
  • Target version changed from 0.2 to 0.1.1

0.1.1でも再現しました(それ以下のバージョンの更新は終了しているので検証しません)。Twitterの挙動が変更されたことにより引き起こされているようです。よって、トラッカーは「環境対応」に変更します。
具体的には、従来、トークンが無効だった場合はHTTPレスポンスコード401を返すことになっていたのに対し、Twitter API 1.1では400と、エラーコード215を返すように変更されていますが、何故か現在、Twitter API v1.0を使用しているにも関わらず、Twitter API v1.1に準じたレスポンスを返しているようで、Twitterの不具合だろうと予想します。

これが恒久的なものかどうかはわかりませんが、現在のmikutterはトークンがなくてもとりあえずAPIリクエストを発生させて、401が返ってきた時に再認証ダイアログを表示する仕様になっています。これを、トークンがない時(≒初めて起動した時)にはリクエストを発行する前に問い合わせるように修正すれば解決します(トークンが失効した時の処理は別途必要ですが)。
頂いたパッチは現状うまく機能していますが、Twitter API v1.0の仕様どおりのレスポンスが帰ってきたら、規制された時にも認証ダイアログが表示されてしまうでしょう。現在の仕様にも上記のような問題があるので、こちらで対応してみます。

Error Codes & Response https://dev.twitter.com/docs/error-codes-responses

#3

Updated by toshi_a 初音 almost 8 years ago

  • Status changed from 実装待ち to 様子見

対応完了。Webでトークンを破棄した状態でAPIリクエストを発行した場合の対策については、v1.0の仕様通り401が返って来たので特にしませんでした。Twitter側の不具合が原因なのでしばらく注意して様子を見ます。

#4

Updated by Satoshi Okuno almost 8 years ago

確認お疲れ様でした。

リビジョン1061で事象解決したのを確認しました。

#5

Updated by toshi_a 初音 almost 8 years ago

ありがとうございます。ただ、Twitterのバグが原因なので、Twitterの修正などが入ったタイミングでまたおかしくならないとも限りません。そんなことを言っていたらいつまでもクローズできないので適当なタイミングで閉じますが、もう少しだけ様子を見ます。

#6

Updated by toshi_a 初音 almost 8 years ago

  • Status changed from 様子見 to 終了

Also available in: Atom PDF