The Trap of Web Design

NP_AutoTwitter を PHP 5.1 で使う

NP_AutoTwitter はかなり前に試していたんで、頼まれたらいつでもできるぞ、と思ってたんですが、新規制作サイトで実装したら、ブログ投稿→ Twitter 投稿が何度も行われてしまうという目に遭遇し、冷や汗タラタラでした。

たまたまその投稿が NP_Moblog を使ったメール投稿で、メール取得してもサーバーから削除されない状況だったため、ずっとソッチのチェックをしてました。

NP_AutoTwitter を外して、モブログしたら正常動作したため、問題は NP_AutoTwitter だと気づき、公開サーバーと同じチェック環境を別に作り、やっぱり正常動作せず。そこまで来てふと PHP のバージョンを調べたら、最初のチェック環境が 5.2 で、公開サーバーが 5.1 だった、と。

NP_AutoTwitter の説明にあるんだけど、Twitter 用に使ってるライブラリが 5.2 用で書かれているらしく、動作環境でなかったという話。


ネット上でそのへん調べたら、json_decode についての情報を発見。PHP 5.2 から使える関数で、それ以前はライブラリ使ってるらしい。なので、

  • ライブラリをダウンロード
  • 必要なやつ(Jsphon.php と Jsphon フォルダ一式)を autotwitter ディレクトリに入れる。

  • twitteroauth.php で Jsphon.php を include する。
  • twitteroauth.php 書き換え。

class TwitterOAuth {} 内に以下を記述。

function json_decode($json_data) {
	$json = new Jsphon_Decoder();
	$result = $json->decode($json_data);
	return $result;
}

そして、class TwitterOAuth {} 内の return json_decode($response); となってるところを、

return $this->json_decode($response); に書き換え。

以上でいまんとこ動いてる模様。

あときづいたこと

サイトによっては自動改行とか設定せず、普通に HTML でタグ使って投稿するところがあるんですが(このサイトとか)HTML は全くツィートしてくれないんだなー。当然といや当然だけど。

2011-03-31 12:29 | Nucleus | ichiro | permalink


Comments

コメントはまだありません


Portfolio

Stagemind

▲ 珍しくカバーアニメーションとか