Anywhereを使ってフォローしてみたり

July 17, 2010,
tags: anywhere javascript twitterクライアント


このエントリーをはてなブックマークに追加

@AnywhereをつかえばJavascriptだけで簡単にさっくりとツイッタークライアント作れちゃったりもします。
しかし細かい制御したりしたいなーって考えたときには簡単にはできないようです。

たとえば、フォロワーボタン押されてフォロワーになったら、メッセージを表示しようとしても、コールバックの設定ができないので何もすることができない。
いろいろ探してたら@AnywhereのAPIドキュメントを発見!!
読んでみると、やはりfollow()とかいったものがる。ってことはフォロワーボタンを用意する方法じゃなくて、こっちで勝手にフォロワー登録とかできんのかなーっとか思って書いてみました。


	function onAnywhereLoad(twitter) {
		if (twitter.isConnected()) {
			twitter.currentUser.follow();
		}else {
			//ログインボタン表示
		}
	};
</script>

あれ反応がない・・・とおもったら、サーバにリクエストは送っているものの、403が返ってきてました。
どうやらエラーメッセージをみてみると、「自分に対してフォローはできません」的なメッセージが。
あらら、エラーですか・・・。相手のID指定したいけど、follow()メソッドは引数とか渡せないしどうにもできない(´・ω・`)

でもよく考えてみたら、OAuth認証はさせてんだし、currentUser.idの値をフォローしたいユーザーのIDに書き換えればよくね?
ってことで、書き換えてみました。


	var followUserId = xxxxxxxxxxx;
	function onAnywhereLoad(twitter) {
		if (twitter.isConnected()) {
			var tmp = twitter.currentUser.id;
			twitter.currentUser.id = followUserId;
			twitter.currentUser.follow();
			twitter.currentUser.id = tmp;
		}else {
			//ログインボタン表示
		}
	};
</script>

これでどうやらうまく行くみたいです。
ちなみにフォロワーかどうかチェックしたいときは以下のようにすればフォロワーチェックできます。


	var followUserId = xxxxxxxxxxx;
	function onAnywhereLoad(twitter) {
		if (twitter.isConnected()) {
			twitter.currentUser.isFollowing(ownerId,{
				success: function(follow) {
					if (follow) {
						alert("あなたはフォロワーです");
					}
					else {
						alert("あなたはフォロワーではありません");
					}

				},
				error:function(e){
					alert("connect error");
				}
		}else {
			//ログインボタン表示
		}
	};
</script>

Javascriptだけでtwitterクライアント作ることはできるし、@Anywhereは偉大だけど、やっぱり細かくいろいろやりたいのなら、どっかサーバサイドでproxyさせたほうが良いと思います。

comments powered by Disqus