Net::Twitter::OAuthで日本語を通したい


Perlに詳しい方に質問です。
CPANモジュールでNet::Twitter::OAuthというすごく便利なモジュールがあるのですが、こちらを利用してTwitterにpostしようとすると、メッセージが日本語の場合だけ通りません。ログをみてみると
「post on http://twitter.com/statuses/update.json?(省略)failed: 401 Unauthorized at /usr/lib/perl5/site_perl/5.8.8/Net/OAuth/Simple.pm line 567, <DATA> line 855.」という感じでNet::OAuth::Simpleのところでとまっているようでした。

googleしてみたところC#ですが日本語がらみで同様の症状を解決された方がいて、
「「つぶやきの投稿」で 401 Unauthorized (認証失敗) のエラーが発生。投稿内容をいろいろ変えて試してみた結果、英数字だけのつぶやきは問題なく投稿できるものの、漢字が混じると「認証失敗」になることがわかりました。なんで認証失敗になるのかというと、こちらで生成した signature と Twitter側で生成した signature が一致しないのが原因であることが判明。」
とのことでした。
http://watcher.moe-nifty.com/memo/2009/04/c-oauth-c097.html

こう書けばよいよ、など解決策をご存知の方、いらっしゃったら教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/06/19 01:40:32
  • 終了:2009/06/19 18:06:17

ベストアンサー

id:QuestR2 No.1

QuestR2回答回数435ベストアンサー獲得回数132009/06/19 03:42:59

id:ononote

Net::Twitterはすでに触っていて、日本語も確認しています。ありがとうございます。

ただNet::Twitter::OAuthをつかいたいんですよね。。

追記:下記otsuneさんにご指摘いただきました。せっかく教えていただいたのに認識不足ですいません。。

確認してみると、別のスクリプト(日本語通ったほう)はdecode対応していました。。見落としていたみたいです。

2009/06/19 18:03:42
  • id:otsune
    >>
    Net::Twitterはすでに触っていて、日本語も確認しています。ありがとうございます。
    ただNet::Twitter::OAuthをつかいたいんですよね。。
    <<
    http://search.cpan.org/~mmims/Net-Twitter-3.01000/

    ちょっと前にNet::Twitterの中にNet::Twitter::OAuthは含まれるようになりましたよ。
    http://search.cpan.org/search?query=Net%3A%3ATwitter%3A%3AOauth&mode=all
    で検索してもNet::Twitterだけが引っかかります。
  • id:miyagawa
    日本語はきちんと decode してから渡してください。UTF-8 のバイナリではだめで、decode_utf8 などしてから渡す必要があります。これは Net::Twitter::OAuth でも、3.0 以降の Net::Twitter に含まれる OAuth モジュールでも同様です。
  • id:ononote
    otsuneさん、miyagawaさん、

    ご指摘ありがとうございました。おかげさまで日本語通るようになりました!
    助かりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません