Archives

You are currently viewing archive for July 2010

Net::Twitter::LiteでOAuth認証する


TwitterのAPIのOAuth認証への変更に伴い、ID/PASSWORDを使ったBASIC認証でボットやクライアントのプログラムをperlやphpで作ってた多くの人がこの時期ばたばたしていると思う。
うちのサーバはNet::Twitter入ってないからとLWP::UserAgentとか使っていた人が多いと思うが、OAuth認証となると素直にNet::Twitter(Net::Twitter::Lite)を使うのがやはり利口である。LWP::UserAgentを使いながら、OAuth認証系に特化したモジュールを追加する方法もあるがやはりめんどうなソースになる。
さて、OAuth認証を利用するにあたって事前にアプリ登録してコンシューマーキーやアクセストークンの取得等の基本的なことは後述のサイトさん等がわかり易いと思うのだが、簡単だと思ってたNet::Twitter::LiteでOAuth認証に思いのほか手こずってしまった。
TwitterのOAuth認証を説明しているサイトの多くで紹介されているのがNet::Twitterなのだが、Net::Twitterは依存モジュールが多すぎてレンタルサーバじゃインストールが大変?、ていうか無理?
それならばNet::Twitter::Liteを使おう、これならば簡単だーっと多くの方がNet::Twitter::LiteでOAuth認証する方法を選択すると思う。
がしかし、Net::Twitter::Liteだけポンと入れてやっても動くには動くがOAuth認証での投稿ができない。
Net::Twitter::LiteだってNet::Twitterほどではないが依存するモジュールがあるのだ。しかも、Net::Twitter::LiteをID/PASSWORDのBASIC認証で投稿するぶんには問題ないのだが、OAuth認証で投稿となると別途追加依存するモジュールがでてくるというわけだ。
私がはまった経緯はこんな感じだ。Net::Twitter::Liteをuseしてuse strictだuse warningsとして構文チェックしてみると、まずでるエラーが「JSON/Any.pmありません」のメッセージ。
OK、じゃJSON/Anyとりあえずいれました、リターンキーをカチッと、なに?JSONパッケージがない?、じゃJSONまるまるいれるぞ、これでOKだろう、それリターンキーをパチっと。
・・・・・。
・・・・・う、動かない・・・・、投稿されない・・・。
ていうか構文チェックしても文法的なエラーもない。モジュールのエラーもでない。なんで?。
ID/PASSWORDのBASIC認証で投稿ならばきちんと投稿される・・・。
・・・ここで丸1日悩んださー。・・・・。

Read More