TwitConnectを活用してtwitterでログイン時に、自己紹介(description)もコピーするの術


twitterの自己紹介の重要性は高いです。1行でさらっとより、文字数制限いっぱいまで自分のことを表現したほうが、人となりが伝わりやすく、フォローもしやすくりなります。

さて今回も、まちいくが大好きなTwitConnectです。全般的な紹介については過去記事のTwit ConnectはWordPressにtwitterでログイン、他にもいろいろ出来るプラグインをどうぞ。

twitterの自己紹介をWordPressのそれにコピーする

TwitConnectはtwitterのユーザーIDとDisplay_name(日本語のものなど)をWordPressのログインIDとNicknameにコピーしてくれる、と言い変えられます。

最近、杉並区おた助では、トップページに、ログインしている参加者のアバターと名前と自己紹介(description)をjQueryのAnythingSliderでスライドショーしています。

一度に読み込むのを6つに絞っているのですが、それでもtwitterAPIにひっかかり、自己紹介が表示されず英文のエラーがくるくるやってくる、という”ぶべら”な状況にありました。

これを改善すべく、ログイン時にtwitterAPIから拾ってきて、WordPressの自己紹介に書き込んで、スライドショーに表示させる自己紹介はWordPressに保存したもの、と仕様を変更することにしました。

TwitConnectの改造です

TwitConnectによるログイン時に、twitterから、IDに紐づけられたdescriptionを拾ってきてWordPressに保存するだけです。

$user_obj = get_userdata($wpuid);

とある行の次にでも

$turl = "http://twitter.com/statuses/user_timeline.xml?id=" . $userinfo[1] . "&count=1";
$rss = simplexml_load_file($turl);

を追加します。1行目では、先にその時のログインIDとして定義づけられた$userinfo[1]を基にtwitterAPIを叩いています。このuser_timelineは最新ツイートなど結構いろいろな情報をもってくるので、descriptionだけを持ってくる場合にはもっとエコなものがあるかもしれません。

2行目で何やら変換をしています。

$userdata = array(
'ID' => $wpuid,
'display_name' => $userinfo[2],
'user_url' => $user_url,
'description' => $rss->status->user->description,
);
wp_update_user( $userdata );

こちらの5行目を追加しています。user_descriptionではなく、descriptionだけです。Function Reference/get userdata « WordPress Codexをよく読んでようやく判明しました。ぱっと見だとはまります。descriptionの項目に対して、$rss->status->user->descriptionの内容を入れ込んじゃえ、ということです。

まとめ

これで、twitterの自己紹介(description)がWordPressのそれにコピーされます。ただし、ログインをした時にしか動作してくれませんので、既存のユーザーのそれがアップデートされたり、twitter側での変更が自動的に反映されるものではありません。

これを機に、杉並区おた助に参加している方は、一度ログアウト、ログインをしてみてください。