まずは API キーを取得しよう
Twitter の機能がラクチン API でボク達のサイトでも利用できるようになるという夢の @Anywhere。まずは「http://example.com ってサイトで使いますよ」っていうことを Twitter 様に申し出る必要があります。そうすると Twitter 様から「じゃぁ、お前んとこはこの API キーを使え」と呪文(APIキー)を授けられます。これはヨソのドメインでは使えません。めんどくさいですがイイナリになるしかないのでこの手順を踏む必要があります。
New Twitter Application をクリックすると以下のような画面になります。
- Application Name:サイトの名前
- Application Website: サイトのURL
- Callback URL:とりあえず同上で OK
- Application Icon:72x72くらいでどうでしょう(指定しなくても OK)
- CAPTCHA:2単語読んで
のように必要事項を入力して[Register application]ボタンをクリックすると利用規約のウインドウが表示されるので[Accept]ボタンをクリックします。無事登録完了すると以下のような画面になります。サンプルコードの id=なんちゃら
が API キーなのでメモっておくように。どうせ HTML ソースに丸出しになるのでモザイクをかける必要も彼女に内緒にしておく必要もありません。
これで自分のサイトで @Anywhere を使う準備ができました。
WordPress で利用するには
functions.php に以下を追加して、@Anywhere のスクリプトと @Anywhere を使用するアナタのスクリプトを読み込ませます。wp_enqueue_script()
だと @Anywhere の URL の最後に &ver=2.9.2
とか WordPress が勝手に付けますがちゃんと動作しますのでご安心ください WebKit系でちゃんと読めないようなので echo
に変更。
add_action('wp_print_scripts', 'my_enqueue_scripts');
function my_enqueue_scripts(){
/*
wp_enqueue_script( // @Anywhere のスクリプト
'twitter-anywhere',
'http://platform.twitter.com/anywhere.js?id=アナタのAPIキー&v=1',
array(), false, true
);
*/
echo '<script src="http://platform.twitter.com/anywhere.js?id=アナタのAPIキー&v=1" type="text/javascript"></script>';
wp_enqueue_script( // @Anywhere を使うアナタのスクリプト
'my-script',
'http://example.com/〜/my-script.js',
array(/* 'twitter-anywhere' */), false, true
);
}
WprdPress で、っていうのはコレだけなので詐欺的な記事タイトルですね。
さぁ、始めるよ!
@Anywhere は jQuery ライクな 使い方ができる API です。my-script.js とかなんとかを作成して以下のような書き方で利用すると良いでしょう。
jQuery(document).ready(function($){
var myTwitter; // オレ達が使う Twitter オブジェクト用変数。
// @Anywhere を初期化。初期化完了後は onAnywhereLoad をコールバック!
twttr.anywhere(onAnywhereLoad /*, ウインドウコンテキストも指定可能 */);
// @Anywhere 初期化コールバック。オレ達専用の初期化はここで行う。
function onAnywhereLoad(twitter){
myTwitter = twitter; // オレ達用に @Anywhere から授けられた Twitter オブジェクトを保存しておく。
myTwitter.linkifyUsers();
myTwitter('.hovercards-target').hovercards();
myTwitter('.follow-kz').followButton("kzxtreme");
/* ... などなど、お好みの初期処理を記述 */
}
// myTwitter を使っていつでもどこでも @Anywhere を利用できます。
// クリックされる度に指定ユーザーのフォローボタンを追加
$('.add-follow-button').click(function(){
myTwitter('.follow-user').followButton($('input#user-to-follow').val());
return false;
});
});
anywhere.js を読み込むと twttr オブジェクトが使えるようになります。twttr
は 初期化とかサインアウトとかを行うための、ボク達が色々イジくれるオブジェクトとは別次元に存在するオブジェクトです。
まず始めに twttr.anywhere()
で @Anywhere を初期化します。引数にはコールバック関数 onAnywhereLoad()
を指定し、ソコで自分の初期化処理を行います。一部のウインドウコンテキストでのみ @Anywhere を使いたい場合は、第2引数にソレを指定します。未指定の場合は、現在のページがまるっと対象です。
onAnywhereLoad()
で受け取った twitter
がボク達が色々イジくれる Twitter オブジェクトです。上のコードのように myTwitter に Twitter オブジェクトを保存しておけば onAnywhereLoad()
の外でも使うことができて便利ですね。ただし実際にお外で使うときは、オブジェクトが null だか undefined じゃないことをまず確認しましょう。
この Twitter オブジェクトには jQuery のセレクタと同様に操作対象となる DOM 要素を指定することができます。
- myTwitter.linkifyUsers()
linkifyUser() の対象は myTwitter のウインドウコンテキスト全体(ページ全体)。 - myTwitter('.linkify-target').linkifyUsers()
linkifyUser() の対象は myTwitter のウインドウコンテキスト内で linkify-target クラスを持つ DOM 要素以下すべて。
ただし、このセレクタは twttr.anywhere()
で初期化を行う前の DOM要素しか見ていません。twttr.anywhere()
以降に javascript で追加された DOM 要素はセレクトしてくれないので注意してください。
Linkify - ユーザー名を自動でリンクさせる
例えば ページ中のテキストに @kzxtreme のような Twitter ユーザー名があれば、それに Twitter ユーザーページへのリンクを付けてくれる。以下の文章をよく読んで linkify ! リンクをクリックしてみよう。@kzxtreme 他がリンクされるぞ。変化の瞬間を見逃さないようにね。
この文章には class="linkify-target" が指定されているので、この @kzxtreme にリンクが付けられるはずだ。大文字小文字は関係ない @KzXtReMe。存在しないユーザー名でもリンクする @sonnnayatu_ine_yo。非twitter ユーザー名 @ab-bc @オレ様 だとどうなるかは己の目で確かめて欲しい。@Anywhere の動向については @anywhere をフォローすると良いぞ。wpist なキミは @jawordpressorg もマストだ。
では、心を無にして、レッツ linkify!
どうだね!非常に地味だろう! linkify はちょっと便利だけども、たかがリンクを張るだけなのでイマイチ面白くない。真面目過ぎてツマランのだ。視野がチョー狭い思春期ならともかく、大人ならもっと遊び心が欲しい。それが大人の余裕。私年上じゃないとダメなの、というえびちゃんの真意を読み取ろう。この linkify のサンプルは以下のようなコードで実現している。
$('.linkify').click(function(){ // linkify クラスをもつ DOM 要素がクリックされた!
myTwitter('.linkify-target').linkifyUsers(); // twttr では linkifyUser() はできんのだよ ...
return false; // このクリックのイベントはここで終わらせてくれ。
})
日本語で説明すると linkify クラスを持つアンカーリンクがクリックされたときに「linkify-target クラスを持つ DOM 要素以下すべてに対して linkifyUsers()
を実行」してユーザー名のリンクを作成しています。
なお、実際にはこのように閲覧者のアクションで linkify することはないはずなので、初期化のコールバック関数内で始めから linkifyUsers()
しちゃいましょう。
コネクトしよう
以降のサンプルがフルで動作するためには、今まさにキミがウチのサービスにサインイン(ログイン)=Twitter にコネクトしている必要がある。していなくても必要になったらサインイン的コネクトウインドウが出てくるのでヨロシク。コネクトのためのボタンは connectButton()
を使って以下ようなコードで表示する。
myTwitter('#signin-anywhere').connectButton({
authComplete: function(signedInUser){ // コネクト/サインイン完了後のコールバック
/* 好きなことができます */
}
});
これで id が signin-anywhere の DOM 要素内にボタンが表示される。コネクト/サインイン後に何もしない=ボタンの表示だけなら、authComplete
オプションなしで単に myTwitter('#signin-anywhere').connectButton()
などとすれば OK。なお、原文には signOut
っていうオプションでユーザーがサインアウトしたときに何かやれまっせ的なことが書いてあるが、そんなイベントは今のところ発生しないぞ?
アンコネクト/サインアウトのためのボタンは提供されないが、twttr.anywhere.signOut()
を実行すればサインアウトできる。ので以下のように何かのクリックイベントで呼んでやれば良い。クリックしてもシー・・・ンとしてるので親切な方は「サインアウトしましたよ」とか表示してあげてください。
$('.signout-anywhere').click(function(){
alert('signout しますー');
twttr.anywhere.signOut();
return false;
});
右のリンクをクリックするとサインアウトします... 【サインアウトする】
サインインしたりサインアウトしたりコネクトしたりアンコネクトしてみるが良い。非コネクト状態でこの記事を一通り読んだ後で、コネクトしてからこのページの表示を更新するとまた違った世界が見えてくるはずなのでぜひお試しください。
ところで、ユーザーがコネクト/サインインしているかの判定やユーザー情報の取得方法を説明している Welcome to @Anywhere | dev.twitter.com の Working with the current user にある以下のサンプル(一部)は 2010.4.18 16:00 現在ウソなので信用しないように。
if(twitter.isConnected) {
currentUser = twitter.User.current;
screenName = currentUser.data('screen_name');
以下がこのコードの具体的な真実だ。
- twitter.isConnected はいつでも true。だって関数だもの。isConnected() だろ。
- twitter.User は attributes を設定するファンクション。current なんて無い。
- data なんてファンクションは無い。
正しくは、現在の(コネクト/サインインしている)ユーザーの情報は以下のように取得する。
if(myTwitter.currentUser)
screenName = myTwitter.currentUser.attributes.screen_name;
profileImage = myTwitter.currentUser.attributes.profile_image_url;
サインインしているコネクテッドなキミならわかると思うが、上に表示されているキミの情報が Twitterオブジェクト.currentUser
で取得できる。それに続けて .attributes.screen_name
などとたどれば必要な値を取得することができる。例えば、現在コネクト/サインインしているユーザーのプロフィール/自己紹介の内容なら以下のようにすれば OK。
myTwitter.currentUser.attributes.description
アナタの自己紹介を 取得する
[your info]
Hovercards - ユーザー名にホバーするとツールチップが!
次は linkify よりちょっとワクワクするぜ。先ほどの linkify されたユーザー名にマウスポインタをマウスオーバー(長いので以降ホバー)させると、ユーザの公開情報がイカしたツールチップで表示されるのだ。そのツールチップのことをホバーカードと呼ぶ。商標取るなら今のうちだぜ。では早速下の @kzxtreme にキミのマウスポインタをホバーさせてみて right now !
この @kzxtreme にレッツホバー!
どうだね!ちったぁ オォッ ってなったかね!ツールチップ内の「もっと読む ...」をクリックするとさらに詳細な情報が表示させるぜ。hovercards()
では指定の DOM 要素内をまず linkify して、そのホバーイベントで ajax なツールチップを表示させている。こ、これがマッシュアップってやつか!違うな、ハッシュドポテト食べたい。こういうオシャレなことがしたかったら、以下のようなコードを我らがイニシャライザーコールバック onAnywhereLoad()
に追記します。hovercards で 1 語だから c は小文字でヨロシク。
myTwitter('.hovercards-target').hovercards();
とくに DOM 要素を限定せずページ全体に適用したい場合は myTwitter.hovercards()
で OK。この hovercard は対象リンクが画面上のどこにあっても、リンクの上下いずれかシックリくる方に表示される。ステキ。
素のユーザー名以外でもホバーカードできる?
はい、私達はアナタが好き勝手に書いたリンクテキストや画像や、そしてリンクもクソも無い素のテキストにさえも ホバーカード を使えるように設計しました。すばらしい、そういった心配りがあるから Twitter はバブリーな存在になれるのだ。例えば既にリンクとなっている文章がユーザー名を含んでいる場合は、hovercards()
の infer
オプションに true
を指定する。
myTwitter('.hovercards-target-infer').hovercards({
infer: true
});
onAnywhereLoad()
でこんな風に書いておけば、下の class="hovercards-target-infer"
なオレ様のアンカーリンクでもホバー時に hovercard が表示される。
リンク内のテキストの一部に @kzxtreme なんてユーザー名を含む場合もOK
うむ、使いどころがよくわからんぞ。リンクテキスト内のユーザー名捜索には正規表現を使っているとのことです。
えっ、じゃぁ @jawordpressorg @kzxtreme みたいにユーザー名が複数ある場合は?
始めに一致するユーザー名が hovercard の大賞おめでとう、ちゃう、対象になります。
次にユーザー名を含まないテキストや、もはやテキストですらない画像であってもホバーカードはご利用可能です。VISA/MASTER カードに迫る勢いだね。キタるべきカード至上社会に備えよ!ワンランク上を行く大人のステイタス、ホバーカード。まずはイメージから。
こういう場合は hovercards()
の username
オプションにユーザー名を指定すれば OK。パンが無ければケーキでいいじゃないの法則です。以下のようにオプション値にファンクションを書いてさんざん好きなことをした後で、思い出したように return でユーザー名を返しても良いです。
myTwitter(".hovercards-target-image").hovercards({
username: function(node){ // ファンクションにすると「この」DOM要素のオブジェクトを受け取れる。
/* do stuff */
return node.title; // img 要素なら title 属性にユーザー名を指定しておくと良いね!
}
});
ん、title 属性の値をヒント表示するブラウザだと、ウザい。では素テキストの場合。通常は太字にしたり色変えたりしないとホバーカードが出てくるなんて誰も気づかんのでご注意ください。以下、サンプルのご利用方法:
- 「けーずぃーえくすとりぃーむ」にホバー!
- 何も起こらない ...
- 「ホバーカード対応させる!」のリンクをクリック
- 黄色くなった ...
- 怪訝な表情で再度「けーずぃーえくすとりぃーむ」にホバー
- おおぉ「けーずぃーえくすとりぃーむ」がホバーカード対応されておる!
- 嬉しくって何度もホバー
- 「ホバー!」だらけ
けーずぃーえくすとりぃーむ
上のテキストをホバーカード対応させる!
これは、以下のような jQuery を用いた javascript プログラミングで実現されています。
$('.hovercards-text').click(function(){
$('.hovercards-target-text').css('color', 'yellow');
myTwitter('.hovercards-target-text').hovercards({
username: function(node){
$(node).append(' ホバー!');
return 'kzxtreme';
}
});
return false;
});
あなたのそばに、フォローボタン
今までは、一般の方はサイト上で follow me とか言っても twitter.com/ユーザー名 へのリンクを張るのが精一杯でしたが、@Anywhere の登場によって 本物の「フォローする」ボタンを表示させることができるようになりました。見た目は諸々の状態によって変化します。このボタンは iframe の中にいるのでデザインは 変更できません。よね?
オレをフォローするボタン フォローしたり解除したりしてみて。
@jawordpressorg をフォローするボタン もうフォローしてるよね?
@jpwordpressorg をフォローするボタン そんなユーザーはいません。
ここ にユーザー名を入力して、
フォローするボタンを 追加 ...
Twitter 上での動作通り、ボタンをクリックすると確認無しでフォローします。ログインしてない場合は、まずログインウインドウが表示されます。なお、自分をフォローするボタンをクリックすると[Can't follow @kzxtreme]な disabled ボタンに変わります。ちぇっ。
Tweet Box
下のツイートボックスからダイレクトにつぶやけます。アプリケーションはこのサイトなので「wpxtremeから」のツイートとなるんですよ、ワォ!
(ここにつぶやいた内容が表示されます。)
これも簡単、サンプルコードは以下のとおり。
myTwitter("#tweet-box").tweetBox({
counter: true, // あと何文字ですよの表示の有無
height: 100,
width: 620,
label: 'レッツツイート!',
defaultContent: 'ツイートボックスに予め入力しておく文字列',
onTweet: function(tweet, renderedTweet){
$('#tweeted-text').html(renderedTweet);
});
onTweet
にはツイート完了後の処理を書くことができます。引数の tweet
は生のつぶやき、renderedTweet
はマークアップされたつぶやきです。サンプルではツイート後に id="tweeted-text"
の DOM 要素内へマークアップされたつぶやきを放り込んで表示しています。
CONCLUSION
以上、ナガナガと説明しましたがコレこそが今 @Anywhere でちゃんと動くサンプルです。どうせまたコロコロ変わると思うので、うまく動かないうまく動かないうまく動かないと悩まなくてもよろしい。あんまりクヨクヨするとハゲるぜ。
ドMなアナタは @Anywhere documentation を頼りに試行錯誤して悶絶してみるのもいいだろう。
動作確認バージョン
- @Anywhere 1
- WordPress 2.9.2
Anywhereの使い方
Anywhereの使い方
@anywhere
検証してからのほうがよいかなぁ
anywhereの設置方法
「パンが無ければケーキでいいじゃないの法則」にワラタ → Twitter@Anywhereの使い方WordPress編 | wpxtreme http://goo.gl/500i
http://wpxtreme.jp/how-to-use-twitter-at-anywhere-with-wordpress Twitter@Anywhereの使い方WordPress編 | wpxtreme
RT @kzxtreme Twitter@Anywhereの使い方WordPress編 http://bit.ly/9Y2roR
Twitter@Anywhereの使い方WordPress編 | wpxtreme http://bit.ly/bBkrCh
@ 自動リンクしか入れてないけど、これだけでも便利。RT @take_it02: Twitter@Anywhereの使い方WordPress編 | wpxtreme http://bit.ly/bBkrCh
@ 自動リンクしか入れてないけど、これだけでも便利。RT @take_it02: Twitter@Anywhereの使い方WordPress編 | wpxtreme
Twitter@Anywhereの使い方WordPress編 | wpxtreme http://htn.to/KN6K92
Twitter@Anywhereの使い方WordPress編 | wpxtreme http://htn.to/HJVQMu
Twitter@Anywhereの使い方WordPress編 | wpxtreme http://htn.to/nFZJyu
ふむふむ。 RT @kzxtreme Twitter@Anywhereの使い方WordPress編 http://bit.ly/9Y2roT
http://wpxtreme.jp/how-to-use-twitter-at-anywhere-with-wordpress
javascriptのプログラム部分が割と分かりやすくまとまっている。
めもめも http://bit.ly/b3pvp5
TwitterのAPIを簡単に使うシステムで『@Anywhere』てっていうのがあるのだけど、それのAPIキーがエラーでとれなかった。おうち帰ったら再チャレンジする。 http://bit.ly/fMJJoU
Twitter@Anywhereの使い方WordPress編 http://j.mp/b7U8SM via @AddToAny
いっぺんには理解出来ないから、後でまた見る。
いっぺんには理解出来ないから、後でまた見る。 / Twitter@Anywhereの使い方WordPress編 | wpxtreme http://htn.to/5EPw7B
ブログのコメントをTwitterで返せるプラグイン@anywhereの設定中。ややこしいが楽しい。HTML5の先駆的なツールだなあ・・・。http://bit.ly/b3pvp5
http://wpxtreme.jp/how-to-use-twitter-at-anywhere-with-wordpress
twitter anywareを説明したサイト。
趣向がよく分からんがためになる!
twitterアカウントでWordPressにログインする方法を調べてる。「Twitter@Anywhere」というやつでなんとかなりそう。が、もっと簡単なプラグインはないのか。
まだよくわかってないかもだけど、面白そう。ぶっくまーく。Twitter@Anywhereの使い方WordPress編 – B! http://icio.us/f03r2j
[twitter][javascript] / Twitter@Anywhereの使い方WordPress編 | wpxtreme http://htn.to/5WMr6V
なうぶら: "Twitter@Anywhereの使い方WordPress編 | wpxtreme" http://goo.gl/500i
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://bit.ly/dq32O1
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://bit.ly/dq32O1
あいうえおRT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://bit.ly/dq32O1
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://bit.ly/dq32O1 test
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://bit.ly/dq32O1
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://bit.ly/dq32O1
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/bQ7aAFbT
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/m1gIUJCh
使い方WordPress編 http://t.co/m1gIUJCh
内容は至ってちゃんとしてるきがするのだけど、文章のテンションが。http://t.co/w4mF38Ph
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/AFyAeO75 aaa
そして当然の如くkzさんが解説してるという…。 http://t.co/v26CFDo3 RT @shinichiN: いい!!RT @HissyNC: @shinichiN Hovercards http://t.co/Oy8Yzjxw
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/3uNSiMwM
分かりやすい!!でも@Anywhereは知れば知るほど面倒になってくるなぁ・・w
分かりやすい!!でも@Anywhereは知れば知るほど面倒になってくるなぁ・・w / “Twitter@Anywhereの使い方WordPress編 | wpxtreme” http://t.co/UFQXT42m
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/i9wDcoDD
[B!] Twitter@Anywhereの使い方WordPress編 http://t.co/dEP6rwUf
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/IUZAvcrZ
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/xgPzaCu3
“Twitter@Anywhereの使い方WordPress編 | wpxtreme” http://t.co/EVuJAUq9
http://t.co/reevesnT : x=6, y=54
http://t.co/reevesnT : x=26, y=10
http://t.co/reevesnT : x=188, y=8
http://t.co/reevesnT : x=320, y=28
技術系 : Twitter公式?でサイトをTwitter化するようなサービスみたい(l▽ly)とりあえずここが詳しかった > Twitter@Anywhereの使い方WordPress編 http://t.co/SXQEI8aR @kzxtremeさんから
Twitter@Anywhereの使い方WordPress編 | wpxtreme http://t.co/KgMrlXtu 役立ちました。
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/s4IgKafm
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/5faGVEb8
RT @kzxtreme: Twitter@Anywhereの使い方WordPress編 http://t.co/tAx94Oxl
Twitter@Anywhereの使い方WordPress編 | wpxtreme http://t.co/nuetUj3H 冒頭部分が現実に…?
Twitter@Anywhereの使い方WordPress編 http://t.co/2PociKEx @kzxtreme
NowBrowsing: Twitter@Anywhereの使い方WordPress編 | wpxtreme http://t.co/AB7PPhSN