Twitterで複数の人にまとめてDMする
http://twitter.com/direct_messages にて、
bookmarklet等を使って事前にjQueryをロードした上で、
Firebug等のコンソールから以下のJavaScriptを流す。
(function(){ var $ = jQuery; var path = $('#doingForm').attr('action'); var data = {}; var authenticity_token = $('#doingForm :input[name=authenticity_token]').val(); var text = ''; function getUserIds(userName){ if( userName.constructor.name != 'Array' ){ userName = [userName]; } var userIds = []; $('#user_id option') .filter(function(){ var optionUserName = $(this).text(); for(var i = 0; i < userName.length; i++){ if(optionUserName == userName[i]){ return true; } } return false; }).each(function(){ userIds.push( $(this).attr('value') ); }); return userIds; } function sendDM(userIds){ if(userIds.length < 1){ alert('DMの送信完了しました'); return; } var data = {}; data['authenticity_token'] = authenticity_token; data['text'] = text; data['user[id]'] = userIds.pop(); dir(data); var func = arguments.callee; $.ajax( {'type':'POST', 'url':path, 'data':data, 'complete':function(){ func(userIds); } }); }; $('#submit').bind('click',function(e){ text = $('#text').val(); var names = prompt('DMを送りたいユーザ名を「,」区切りで入力してください').split(','); sendDM(getUserIds(names)); return false; }); })();
発言を入力した後、Sendボタンを押すと送るユーザ名を聞かれるので、
「hogehoge,fugafuga」のようにカンマ区切りで入力してOK。
で、送信されるはず。
裏でhttp://twitter.com/direct_messagesのHTMLが読み込まれるので、
素直にAPI叩いた方が軽いとは思うけど、認証しなおすのも面倒なので。