@AnywhereをつかえばJavascriptだけで簡単にさっくりとツイッタークライアント作れちゃったりもします。
しかし細かい制御したりしたいなーって考えたときには簡単にはできないようです。
たとえば、フォロワーボタン押されてフォロワーになったら、メッセージを表示しようとしても、コールバックの設定ができないので何もすることができない。
いろいろ探してたら@AnywhereのAPIドキュメントを発見!!
読んでみると、やはりfollow()とかいったものがる。ってことはフォロワーボタンを用意する方法じゃなくて、こっちで勝手にフォロワー登録とかできんのかなーっとか思って書いてみました。
1
2
3
4
5
6
7
8
9
|
function onAnywhereLoad(twitter) {
if (twitter.isConnected()) {
twitter.currentUser.follow();
}else {
//ログインボタン表示
}
};
</script>
|
あれ反応がない・・・とおもったら、サーバにリクエストは送っているものの、403が返ってきてました。
どうやらエラーメッセージをみてみると、「自分に対してフォローはできません」的なメッセージが。
あらら、エラーですか・・・。相手のID指定したいけど、follow()メソッドは引数とか渡せないしどうにもできない(´・ω・`)
でもよく考えてみたら、OAuth認証はさせてんだし、currentUser.idの値をフォローしたいユーザーのIDに書き換えればよくね?
ってことで、書き換えてみました。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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>
|
これでどうやらうまく行くみたいです。
ちなみにフォロワーかどうかチェックしたいときは以下のようにすればフォロワーチェックできます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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させたほうが良いと思います。