TOPSYが中々使える

ツイッター関連のサービスは数あるけど、ツイッターのまとめサイトは結構使いやすかったりする。

たとえば、Togetterとか、TweetLogとか、BackTweetがそうだと思うのだけど、その中でも、
TOPSY
はなかなか便利なんじゃないか、と思える。

TOPSYの中で一番便利だなって思ったのは、

続きを読む

twitter関連のOAuth認証が通らない

表題の件について、解決するのにとても苦労したので、ここにメモしておく。
同じような問題にぶつかっている人もきっといると思うので・・・。

そもそも、Oauth認証というのは。。。

APIの認証を委譲するためのプロトコル・・・なのだけど。
例えば、wordpressからtwitterに投稿したいとか、いまあるサービスから別のサービスを組み合わせたい(マッシュアップ)というときにOauthを使うと非常に便利になる。

OAuthを採用したサイトと、外部サイトやソフトウェアとのAPI認可を与えると言う仕組み。
その際には、発行されたトークン(暗号化された文字列キー)で認証を行い、API認可をする。
これにより、外部サイトやソフトウェアなどからのログイン認証や、メッセージの表示や送信などの制御ができる。

まぁ簡単にざっくりというと、こういう事らしい。
ちなみに、twitter,mixi,googleではすでにOauthを導入している。

twitterに至っては、9月1日から従来のBasic認証は廃止し、Oauth認証一本になったらしい。

とまぁ、前置きはこのくらいにして、今回ハマったのは、wordpressにtwitter toolsを入れる過程で、
どうしてもOauthの認証が通らなかったところ。

twitter側の「許可」「拒否」画面がどうしても出ず、そもそもパラメータのoauth_tokenの値が空欄になっていた。

軽くぐぐってみると、
Tweetableでoauth_token=が空欄になる【WordPress】

というサイトがあり、どうやらまったく同じ現象の模様。

でも、このサイトの指摘にあるように、外向けのHTTPS通信は許可してるし、どうにも原因が分からなかった。
ファイヤーウォールも問題なく設定されていた。

さらなる調査の結果、Oauthでcurlを使うということも書いてあった。

どっちにしてもcurlも入ってるし、情報ないのですか?という感じでテンションがおかしくなる。

あまりにも分からなかったので、まず、原因がどこにあるのかを特定するために、ロリポップで同じ環境を作り出すことにした。
もしロリポップでうまく行った場合は、自宅サーバーの設定が悪いということになる。
もしロリポップでもうまくいかなかったら、twitterのoauth認証関連のサーバの負荷が高い・・・
ということが考えられる。(導入後すぐだしね。)

で、いざロリポップにWPいれてやってみたら、すんなり行った!苦笑

ちぇ、やっぱ自鯖が悪いのかよ・・と思いながら調査してみる。

目をつけたのはcurl周り。
ロリポップさんのマニュアルにはそこまで詳しくサーバーの仕様が書かれてなかったので、
phpinfo();を叩くことにした。

まずロリポップのcurl欄

ところが、自宅サーバーのほうは、OpenSSLの記述がなかった!!!

ということで、これが原因だと睨み、curlの再インストールをやってみたところ、

こんな結果になりました。

再インストールの方法等はまたwikiの方にでも書きたいと思います。
元気があれば・・・ね。

結局、curlでの通信にSSLを組み込んでやることで対応できました。

めでたしめでたし。。。
Oauth・・・・ハードル高いゎ・・・。

でもまぁ、これで今後はbotとかも自作できるようになるかなー。
twitter API作るべー!