Net::Twitter-3.13003 と Net::OAuth-0.24 の組み合わせで日本語がpost出来ない [Perl] [twitter]

| コメント(2) | トラックバック(1)

事の発端は、昨日 Net::Twitter をupgrade してpostしたらTwitterAPIから "Incorrect Signature" って返ってきてなんじゃらほい ってことから。

とりあえず、Incorrect Signature でぐぐって みたら perlのNet::Twitterを更新したらOAuthで日本語がpostできなくなった という記事を発見。ひとまずNet::Twitterを3.13001に落として様子見。

Net::Twitterの3.13001から3.13003へのdiffを眺めつつそこから呼び出されてるNet::OAuthを眺めつつ。

Net::Twitter で $Net::OAuth::SKIP_UTF8_DOUBLE_ENCODE_CHECK を設定してるけど 当のNet::OAuth側には該当変数のコメントに this is not actually used any more って書いてあるのを発見。(←2重エンコードのチェックは動いてないのかよ

Net::OAuthのコード(Net::OAuth::Message)をよくよく見ると

if ( Encode::is_utf8($str) ) {
  $str = Encode::decode_utf8($str, 1);
}

って書いてある。

・・・

ちょっと待て。既にUTF8フラグが立ってて文字列扱いなのに何でさらにデコードすんのん!?

ということで、if の条件を !Encode::is_utf8($str)に変更(↑のコードのすぐ下で URI::Escape::uri_escape_utf8($str)してるからdecode_utf8encode_utf8の間違いではない)して、
且つNet::Twitter-3.13003 をインストールして 再度post

通った!(ノ・ヮ・ノ

拙い英語で rt.cpan.org にてNet::OAuthにチケット発行。 ← 今ここ

・・・

疲れた。

追記: タイトルのNet::OAuthのバージョンがえらい間違ってたので修正しました。 _o/L

トラックバック(1)

トラックバックURL: http://floralcompany.jp/mt/mt-tb.cgi/211

一応 前回 の続き lestrrat さんが RT でつついてくれたお陰もあってか、 昨日(?) Net::OAuth:http://search.cpan.org/dist/Net::OAuth の修正版がリリースされ、 Net::OAuthが変なdecodeをすることはなくなりました。 (0.26以降) が、その対処方法は 「渡ってきたパラメータを適切にdecodeする」ではなく、 「パラメータは適切にdecodeされていると想定することにする」 つまり 「アプリケーション側でちゃんとdecod... 続きを読む

コメント(2)

RTでつついたら出してくれたみたいですよ! http://cpansearch.perl.org/src/KGRENNAN/Net-OAuth-0.27/Changes

ちなみに僕も同じ所ではまってこちらで現状を確認して、RTでつつきました。
ありがとうございました!

コメントする

AUTHOR

  • turugina (虎王 剱奈)
  • E-mail: turugina {at} floralcompany.jp
  • pixiv
  • ニジエ

2014年5月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.2.10

- 警 告 -

本サイトにはいわゆる「18禁画像」(イラスト)へのリンクが存在します。 未成年の方や、その手の画像に不快感を覚える方は、 該当記事(「えちぃの」及び「ちょっとえちぃの」カテゴリ) をご覧にならないようお願いいたします。

上記を理解した上で非表示のブログパーツを表示する
あわせて読みたいブログパーツ
ついった
drawr/pixiv/twitpic