Twitter

TwitterBotをNode.jsとntwitter使って運用中、参考記事紹介

どうもなんか今日ちょっと肌寒いですりっくんですこんにちは。パズドラをやってるわけですが、ゲリラダンジョンとか行き始めたらランクが上がりませんぐぬぬ。

Nodejs_logo_light

パズドラ用Bot

俺用Bot作りました。まぁ横流しするだけなんですけど。
ゲリラダンジョンを確認するには@pazubotを見るのが楽なんですが、夜確認するだけだとすぐ忘れて、結局朝も確認して、ついでに直前に確認する・・・にも500もフォロー居ると流速が結構早くて辛い、みたいな事になっててですね・・・。まぁめんどくさくて、Botに監視させて俺にリプライ送ってもらおうと思ったのが今回のBot作成の発端です。

ってことでタイトルにもありますがNode.js使って運用してます。初めはPythonあたりでやるかと思ったんですが、書き慣れたjavascriptを使えるってのが個人的には良いなぁと。あれこれプラグイン探してたら「ntwitter」ってのが有ったのでそれ使ってやってみました。

Node周り

一応Node.jsの環境とか描こうと思うんですが、なんの策略かほとんど僕と同じ構成にしてるBlog記事を発見したので流用しまふ。

node.js node.jsスクリプトをforeverでデーモン化する -でじうぃき – 

forever突っ込んでみたらびっくりするほど簡単にデーモン化できて、起動しっぱなしにできました。今回はBot作成だったので動かしっぱなしどうするかなぁと思ってたんです・・・。
インストールなんかもググってください。一応nvm経由で入れました。

3分でCentOS6にnvmとnode.jsをインストールする方法 – DQNEO起業日記 – 

一応鯖がCentOSな環境だったのでそれに合わせて。とは言えローカルでも動かさないといけないのでMacでも確認したのですが、なんかv0.8.2?とかが入ってたんですよね、それで結局Macでもnvm経由でv0.11.2を入れなおしてます。

Twitter周り

AvianFlu/ntwitter · GitHub – 

コレ使ってます。しかしREADMEにあまり情報がないのでソース読まないといろいろよくわからない。で、なんかぐぐってたら解説してくれてるサイトさんが。ソースリーディング力は付けないといけないっすね・・・。

node.js ntwitter – 

思ったよりも簡単で、しかもStreamingAPIにも対応しているという。

特にこったことはやってないけど、要は@pazubotのツイートを見て、自分の組に該当しているツイートだったら
”@Ricckn ”+その内容
って形でリプライを飛ばすみたいな感じ。一応合計で140字を超えるとエラー吐いてスクリプト自体がストップするのでチェックして、超えたら形成しなおしてはいますが。一応Tweetするようの関数は作っておくと便利だと思います。

var Twitter = require('ntwitter');

var twit = new Twitter({
  consumer_key        : 'consumer_key',
  consumer_secret     : 'consumer_secret',
  access_token_key:   : 'access_token_key',
  access_token_secret : 'access_token_secret'
  });

//Tweetする関数
function tweet(tweetMsg){
  twit.post(
      //"http://api.twitter.com/1/statuses/update.json", APIは1.1になったよ!
      "http://api.twitter.com/1.1/statuses/update.json",
      {status : tweetMsg},function(er, data){console.log(data.text);}
  );
}

※追記
API1.1になったじゃねーかーーーーあああ!!!
ってことで少し書きなおしております。具体的にはURI・・・(‘A`)

サンプルとか参考にしまくってるのでだいたいその辺と一緒です。StreamingAPI周りもかなり簡単にできると思います。適当にSampleStream垂れ流したときはコンソールが大変なことになった。読めねぇ。

しかしこんな簡単に作れるんだなぁと。まぁとか言いつつ、昼まで動いてなかったBotが夕方になっていきなり動き始める怪奇現象が起きてて、んでよくわからんけどそれから先程まで正常に動いているという・・・怖すぎるんですが。

ってことで、簡単なモノ作るくらいならNode.js使うのもありだね!って思いましたし。

jQueryでTwitterのWidgetを非同期更新する。

最近なんか充実した日々を過ごしておりますりっくんです学祭全くいかないけど!サークルやってないとね・・・、行く機会無いのよね・・・、友達ライブ出てたりするけどまぁうん。学祭にはいかないけど、昨日は(学祭中)図書館いって資料漁ってました。人全然いないのwwwww (‘A`)

 

なんでTwitterWidgetを非同期で表示とか

FEZなう!関係なんですけど、自分と同じ鯖のユーザーを表示できればそこで繋がりができるかなぁって思って、Postした時点で検索ワードを切り替えて、その鯖用のWidgetに更新できたらおもしろいなぁと思ったんで。

けど、あんまり資料が無くて、ついでに自分が色々わかってなくて結構時間食いました。Ust配信で色々な方に助言頂きましたが、なんとかできたのでそのコード上げておきます。もしなんかサイト作るときに、あー、このボタン押したときにWidgetが出ればなぁーーー!!みたいな事したくなったら思い出してください><

参考:Audia ツイッター・ウィジェットの非同期通信ダウンロード

コードとか

今回はFEZなう!で

  1. Postボタンをクリックした時に
  2. サーバーの情報を持ってきて
  3. サーチワードを切り替えてWidgetを再表示

みたいな感じにしようと思っていじってました。

$(document).ready(function() {
	// Twitterに投げるボタンのid
	$('a#twitterpost').click(function(){
		  $.getScript('http://widgets.twimg.com/j/2/widget.js', function() {
		  	
		  		// selectされてるサーバーのvalueを取得 A鯖なら”A”が入っている
		  		var world = $("select.world").val();
		  		// サーチワード用にチェンジ
				var searchword = '#' + world + 'feznow';
				// 鯖のタイトル変えたかったのでそこも変数に
				var changedtitle = 'FEZなう! ' + world + '鯖Twitterユーザー'; 
		  	
		    new TWTR.Widget({version : 2,
		    	id : 'twitter-block', // デフォルトでは存在し無いけど、id指定すればそこに突っ込めるみたい
		   		type : 'search',
				search : searchword,
				interval : 2000,
				title : changedtitle,
				subject : '',
				width : 200,
				height : 380,
				theme : {
					shell : {
						background : '#1f1f1f',
						color : '#ffffff'
					},
					tweets : {
						background : '#ffffff',
						color : '#2f2f2f',
						links : '#e0762f'
					}
				},
				features : {
					scrollbar : false,
					loop : true,
					live : true,
					hashtags : true,
					timestamp : false,
					avatars : true,
					toptweets : true,
					behavior : ''
				}}).render().start();
		});
	});
});

ちなみに、id:twitter-blockにはすでに別のTwitterWidgetが入ってます(サイズとかは一緒で、.clickイベントではなく(document).readyのタイミングで突っ込んでる)。

うむ、.getScript使ってやる感じでし。なるほど、始めは.load使ってidにデータ<script>内突っ込めば動かないかなぁとか思ったんですが、上手くいかなかったんですよね。

 

あと、今の段階ではあまり鯖ハッシュタグ使ってる人がいないのでぜんぜん機能してないです(笑) あとある程度固定化されてるからあんま関係ないのかもなぁと。ユーザー数増えたら面白くなると思うんだけど宣伝とかよくわからん・・・!まぁその辺はおいおい。

A鯖ユーザーだよ~みたいな画像をfadeで表示させようかなぁとは思ってます。あとはリアルタイムに今PostがあったFEZなう!を表示できたら最高・・・!ハッシュタグで華麗に実装できないものか。

 

まぁなんにせよ一つ関門突破できてよかった。ってことで終わりです・x・

ツイ名刺が届いた!

先日注文したツイ名刺が届きました!
なかなかの出来栄え、名刺はやっぱり家で印刷するんじゃなくて、頼んだほうが綺麗ですね。次はそうしよう。

ツイ名刺とは

ツイ名刺←←リンクになってるよ
簡単に言うと、TwitterのIDから画像とプロフィールを引っ張ってきて、QRコードとかくっつけて簡単に名刺つくっちゃいますよってサービス。上のページにいけばやり方はわかるはず!

今回はなんと!18日までの期間限定で広告付きツイ名刺が1アカウント50枚まで無料!ってサービスをやっているところで、それに便乗した感じです!

 

そういうことで出来上がったツイ名刺がこちら。

こんな感じ。
なかなかいい感じに出来上がってます。先ほど書いた広告付きっていうのが、裏にあるこの広告のことですね。

結構らくらく作れちゃうので、とりあえずサービス期間中に作ってみると面白いかも!ってことでご紹介でした~。

 

Solar カスタマイズ編

前回の記事:Solar インストール編

ということでインストールが終わってカスタマイズ編に入ります。

カスタマイズをほとんどしなくても、Webクライアントを使ってた人から比べれば楽だと思いますが、ちょっといじるだけで便利さが全然違いますので、すこしだけでもいじってみましょう!

さて、今回はテーマを2つに分けて説明します。

 

  1. カラムを増やす
  2. タブを増やす

こんな感じ。まずカラム、タブについてですが、とりあえずこちらをご覧ください。

これは私の今のSolarの状態ですが、カラムとタブの関係はこんな感じです。ってことで早速カラムを増やす方法へ入ります。

1.カラムを増やす

起動直後のSolarはこんな感じだと思います。このままだと主にMention(自分宛ての@)を確認するのにわざわざタブを変えないといけないので面倒です。その辺を踏まえて、まずカラムを増やす方法から。

Solarの上部、ツール → レイアウトをクリック。

最後にOKを押せばこんな感じになります。Solarのカラムは、クライアントのサイズに対してカラムの数等分になるので、横幅を自分で調整してみてください。

2.タブを増やす

右側のタブを”Mention”にしようと思います。MentionはMentionで出てたほうが返信とかスルーしにくいですよね。
同じように ツール → レイアウト の画面に行きます。

さっき作った名称未設定のタブをクリック、タブ名をMentionにしてソースタブをクリック。

このようにアカウント名と返信を設定。これでOKを押します。

※Solarはすぐには反映されないみたいで、クライアントを再起動するとちゃんと取得してくれると思います。

 

そんな感じでタブを編集します。ソースの中にはリストも選択できるので、アカウント名 リスト リスト名 を入れればリストを取得するタブも作れます。
そしてカラム1のMentionはいらないと思うので、左下のマイナスボタンで消しちゃいましょう。

 

これで2カラム、左がHome 右がMentionという最低限使えるクライアントの完成です。

 

そんなわけでSolarの紹介でした。Twitterクライアントは他にもあるので色々試してみるといいですよ。

Solar インストール編

Twitterユーザーの中には結構公式Webクライアントを使ってる人がいるとか気になったので、一応専用クライアントもありますよっていうご紹介。今回は自分が使ってる”Solar”の紹介をします。

まず私がSolarを使う理由の第一、ですが。Userstreamに対応しているということです。Webクライアントを使ってる人は一定時間おきに”あたらしい投稿があります”みたいな文字が上ににょきって出てきますよね?
ちょっと前までのクライアントだと大体はそんな感じで、x分おきに新しい投稿を更新する みたいな感じな挙動をしていました。

しかしSolarなど、Userstreamという機能を実装しているクライアントはほぼリアルタイムに相手の発言が自分に反映されます。これがなかなか面白くて、100人くらいフォローしてると流れるようにTweetが更新されて面白いと思います。

 

ってことで一度使ってみましょう!

クライアントをダウンロードはこちらから。

URL:Linearstar Solar

上のリンクから、 Download Solar をクリック。Zipファイルがダウンロードされるのでそれを任意の場所に解凍してください。とりあえずMy Documentとかに置いておけばいいんじゃないですかね。

解凍したファイル群の中にSolar.exeというファイルがあるのでそれをクリックします。
(ここで起動しない人はMicrosoftの.NET Framework 4をダウンロード、インストールしてください。)

するとこのような画面が出てきます。この段階でSolarはまだあなたのTwitterアカウントがわからない状態なので、これから認証します。認証ページをブラウザで開く、というボタンを押してください。

このような画面がでますユーザー名とパスワードを入力して 許可する をクリック。

すると数字7桁がでるので、それをコピー、そしてSolarに戻って、その7桁の数字を貼りつけしてください。

ということで完了、Solarをお楽しみください(enjoy solar!)

次回はカスタマイズ編。いじってなんぼなSolarですよ!(と言っても簡単な弄りです)

続き:Solar カスタマイズ編