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・

FEZなう!

今週もまた忙しい週末を送ることになりそうなりっくんですこんにちは。まじでリアル充実、贅沢な悩みだが爆発しろ。

 

さて、FEZなう!について一度ちゃんと記事にしておこうと思います。

FEZなう!

FEZなう!というサービスを作りました。
http://feznow.net/

FantasyEarthZeroというゲームにログインしてるよ!ということをTwitterにつぶやくためだけのサイトです。

Server、Country、Charactor、Job、Fieldを入力してボタンを押すと

[  Ricck  ] – Aエル – 両手ヲリ >> 【首都】 #feznow http://feznow.net

こんな感じに整形されて一緒にFEZやってる人にログインしてるから入れよ!みたいなアピールができるというわけです!
現在はCookieにて戦場以外を記憶しておく機能があるので、開けば前回と同じ値を入力保持してくれてると思います。もし動かない人がいたら@riccknまで報告くれると嬉しいです。

できることといえばそのくらいで、あとは#feznowのハッシュタグを追って敵に入るとか面白いかもしれないですが、現状のユーザー数とかではむりですね・x・ すげー増えたらそういうのまとめるページがあっても面白いかもしれないですがw

前回の日記からデザインが一新していますが、数日前に更新して、現在の形になっております。またオレンジを使っちゃったぜ・・・へへっ
個人的にはそこそこまとまった形になったかなぁとは思いますが、どうでしょうね?w

今回もまた@hisohime先生にはお世話になりました。 最後の最後までありがとうございます><

 

ってことで後は保守してく感じになりそうです、あとは記入漏れチェックをするかも、程度ですね。でもわざとキャラ名を入れない みたいな使い方があるみたいで(想定してなかったのですが笑)そのへんはちょっと様子見かなぁとも。

とりあえず、FEZなう!をよろしくお願いします><

 

 

 

今#ponponpainな方はこんな場所でも#ponponpainしています。

位置情報を使ったぽんぽんぺいんサービスみたいなのをさっき友人と話してました。
その実態はぽんぽんぺいんのハッシュタグを追って、位置情報で半径2km、15分前後でぽんぽんぺいんしてる人全員にリプライを飛ばすみたいなサービスですねw

そもそも位置情報つかってぽんぽんぺいんしてる人が少なすぎて、なんてあほな考えなんだとも思いますけど、時間があったら面白いですかねこれw
Replyで

@xxx @xxx が<google map url> 付近でponponpainしています

みたいなw

またハッシュタグを荒らしそうな・・・、そしてReplyをもらう方はただうざいみたいなw
実現はしないかもしれないですが、考えてるのは面白いですね、次は何つくろう!

 

Google+参加とその使い方

もう管理してるSNSが多すぎてやばいかもしれないりっくんですこんにちわ。具体的にはmixi、Facebook、FESNS、FEZ-SNS(非公式)、まぁ入れるなら一応Twitter。そしてココに来てGoogle+な訳です。

Google+

Google+とは
Googleが行っているソーシャル・ネットワーク・サービス(SNS) 見た目はFacebook

先日、とある方よりGoogle+に招待していただき、Google+にログインして2日目になります。細かい機能なんかはググってください。(そういえばTwitterでGoogle+をググレタスって読み方をしてる人がいてハイセンスだなぁって感じましたw

とりあえず少し使ってみて感じたのは、Twitterと同じ使い方をしては絶対にいけない ということでしょうか・・・。

 

Twitter的な使い方=Userstream

Google+はSNSなのでやっぱりFacebook寄りです。Twitter寄りではありませんね。
私もFacebookアカウントを持っていますが、Twitter連携をするとどうしても細かい発言の細切れになってしまって、読む方は辛いと思います、というのもうそういう物を読むように作られていないからで。

TwitterはTwitterで、あの速度感とかがすごく楽しいのですが(Userstreamとかまさに)、それをGoogle+でやっちゃうとすぐに流されて多くの人の発言が表示されなくなってしまうんじゃないですかね・・・。仮にTwitter連携ができて、さらにスレッド的な表示に対応したとしても自分は入れないでいこうかな・・・。

ふと思ったのは、スレッド式に会話がスタックされるので何か予定を調整したりするのにとか、意見をまとめるのとかにはそこそこ使えるかもしれないですね。Twitterよりはまとめやすいきがしますが、まぁIRCとかやってる人達にとってはそこまで関係ないことでもありますかw

 

AndroidのGoogle+アプリ

なかなか上手くできててすばらしいです。まだAPIが公開されてなくてGoogle謹製のアプリしか無い状態ですが、普通にいいですね。

しかしこのままだとマーケットに”英語なので☆1”レビューがあふれることになってしまうかも(笑)

 

その他もろもろ

Facebookと比べて、UIはGoogle+の方が私は好きですね!なんていうかデザインもそうなんですが、操作感とかそういう面ではさすがGoogleだなぁという、技術力を魅せつけられた感じがしますね・・・。

”サークル”って名前が付いた、俗にいうグループ的な物が作れるんですが、そこにユーザーをポイッって投げるとそのサークルに入るんですよ。口では説明しにくいのでぜひ参加してください☆

あとは、Gmailの連絡帳から、招待する人を選択できるのですが、一番上に書いてあるアドレスに招待メールを送るみたいなんですよね。GmailじゃないとGoogle+は最大限に活用できないっぽくて、それでちょっといろいろ大変でした。
しかたなく、連絡帳のメールの順番を変えてみたりしましたがすぐに反映されるわけではなさそうで・・・。結局メールアドレス直打ちで追加したような気がしますぐぬぬ。

 

最後に

最後に、どこまでサークル追加していいものなんでしょう、結構好き勝手に追加していいのかな?ってそんな質問をする時点で日本人的というかなんというかw

お友達な人は私のアカウントはこちら(http://gplus.to/Ricck)になりますので、ぜひぜひサークル追加してください☆

 

それでは以上!

続・jQueryでUserTimeline拾ってこれたメモ

あの花は近年稀に見る素敵な最終回だった、普通に泣いてたりっくんですこんばんわ。なんという時間、今日は眠れないフラグ、明日もなんだけど。

jQueryでTwitterのUserTimeline取得続き

前回の日記のように、ちょっとjQueryをいろいろいじってますが、そもそもプログラミング経験がほぼ0なのでいろいろなところでつまずいてます。

とりあえず前回のコードのままだと最新Tweet1個しか持ってこれないので(一応コピペで対応できるけど)forつかっていっぱい出せたらなぁって言う。

 

Nの人ありがとう、細かいところ修正しておきましたおw

jQueryというかjs

/*
 * get UserTimeline
 */
		$(function(){
			$.getJSON("http://twitter.com/statuses/user_timeline/Ricckn.json?callback=?", function(data) {
			tweets = "";
			for(i = 0; i < 3; i++) {
				tweets += "" + data[i].text + "
"; }; $("#TweetList").html(tweets); }); });

ってことでこんな感じに。for(i = 0; i < 3; i++)ここの数を変えていくつまで取得するか変える感じ。

brで改行してるからmarginとか整えるといいのかな?できないね、よく考えてなかった(‘A`)

動いてるのはここのサイトで確認できます。私のjQueryメモ帳

http://remicck.net/jQuery

なんかIE8には嫌われてるんだよね、9は大丈夫なんだけど、まじ意味不明。

 

ってことでこの後、サッカーを見つつ本を読んで、眠れるかなぁって所です。ぐぬぬ・・・

 

 

jQueryでUserTimeline拾ってこれたメモ

調べる機会があったのと、これ見てjQuery勉強するためにメモ。

 

<html>
	<head>
	<title>test</title>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
	<script type="text/javascript">
	$.getJSON("http://twitter.com/statuses/user_timeline/Ricckn.json?callback=?", function(data) {
     $("#LastTweet").html(data[0].text);
});
	</script>
	<!-- Riccknの部分を任意のユーザー名に -->
	</head>
	<body>
	<div id="LastTweet"></div>
	</body>
</html>

 

 

超簡易だけど、これ使ったらいろいろ面白いこと出来るかもね。
サンプル:http://remicck.net/getUserTimeline.html

まるまる参考にしたのはこちら:Twitterの最新ツイートを、jQuery と PHP で取得する2つの方法

 

 

にっき★

どうも最近の生活リズムがやばすぎるのに、何とか回ってるりっくんですこんにちわ。

具体的にどうやばいかと言うと、まず起床時間が深夜0時というところに最大の問題点があります。就寝時間は18時です。

つまり、0時に目が覚めてちょこっとゲームしたりPCしたり・・・、けど結局眠れないので本を読んだりPC触ったり・・・。
そのまま朝になり、家族で朝食を食べて1限に間に合うように家を出ます。この後はいろいろですけどとりあえず家に18時ごろには帰っていて、ちょうど眠気が来るんですよね・・・、まぁ起きた時間から逆算すれば当たり前な感じなんですけど。

んで眠っちゃって、夕食を食べずに0時ごろまでグーグーグー。
起きてから食べてます。(朝食的な立ち位置?)

 

なんだこれ!意味がわからない!!

意味不明、なんでこんな生活になったの!!
昨日も一応コーヒーを飲んだりして頑張ってはずなのに、だめなんですよね眠気に耐えられない。ちょっと前からオールで授業に出るのがつらくなっていたのですが、もう明らかに若さが足りない、体力が足りません。

・・・ああ、インドアな生活に慣れすぎちゃったかな、冬が悪いおれは悪くない・3・

 

まぁそんなわけでここ数日聞いたこととか思いついたことをまとめてみます。

大学生のTwitter、Facebook利用率

自分はどっちもバリバリですけど、割とやってる人が少ない・・・かも。という話を聞きました。
実際、自分の周りでもTwitter登録したけどやってないみたいな人はいますしね。てかほんとに少ない(逆に気にせず呟ける?・3・) Facebookは壊滅的。高校の同期とか検索しても全然出てこないw 大学だとわからん人だらけになっちゃうけど、高校の同期は名前見ればわかるはずだから、本当に登録者が少ないんだと思う。

原因はmixiだろうなぁ、ぶっちゃけあれで十分だろうからね。

10倍の生徒数の採点をしないといけないのにギャラが一緒・・・。

昨日出た講義なんですけど、なんか別の同名の講義の10倍くらいの人数が来ちゃって、あまりの偏りに先生がぼやいてました。
採点期間も1週間とかでやってられないみたいなw

まぁ地味に100人を超えると回答用紙あたり5円のボーナス?がつくらしいですけどw

時間割またいじってる

なかなか決まらない・・・。木曜日を休みにする選択肢をとろうかと思ってたけど、結局木曜日のコマも取ろうと思う。
選択肢が広いからこそ悩むなー!

1限をとらないように組んでる友達は、まぁそれはそれでよさそうな時間割になってたけど、1限でればほとんど午前中で帰れるんだぞ!?圧倒的アドバンテージ。まさに早起きは三文・・・いやそれどころじゃない。
1限からの人と2限からの人。1限クンは昼休みに帰れることを考えると(1コマ分の90分+飯の時間60分=2時間半)早く帰れる! 早起きは2時間半も得になるよやったねたえちゃん!

・・・、まぁ適当ですけども。やっぱり午前中から活動してたほうが生活リズム整うしね、どうせ夏休みで崩れそうなものだけど。

専門科目ばっかりイエーイ

専門ばかりで素敵。ハッピーになれそう。

 

学校のPCでカタカタしてます。そろそろ帰ろう。
というか昨日の講義がとれてるか確認するために掲示板見なくては。掲示板の掲示物を全部ネットにあげてくれねーかなぁーーー!!

!誕生日

昨日が誕生日でして、21歳になりました。(BlogとかのProfile変えないと)
色々な方が祝ってくれてなんとまぁ自分の人生は幸せなものかと。ありがとうございます。

なんだかんだで大学が始まってて、ガイダンスやらでそこそこ学校行ってようやく時間割が決まり始めました。
とりあえず1限の講義は出るって感じで気にせず時間割に入れていった結果、週の内3日は2限で終わるという素晴らしい時間割が!俺得!

まぁ抽選があったりするからまだわからないけど、出来ればこのまま確定してほしい・・・!

 

そうそう、誕生日祝いにBuchiさんがプレゼントしてくれたPortal2が面白くてやばいですw
というかCoop(協力プレイ)楽しすぎてやばい。これはみんな買うべきだわ・・・、PS3とかXboxでも出るみたいだけど、まぁマウスでエイムできるPCが最強ですよ!・3・

うーむ、雑談エントリー的な感じなので適当に。

今、思いついたんだけど、Twitterでおはようってつぶやくと数人の人がレス返してくれるんですよね、私のTL。
んでそれに返信するんだけども、”おはよう→(相手)おはよう→おはあり”ってまぁわかるんだけど、ありがとうじゃないから自分はおはようって返してる。 なんか微妙にバリエーション付けて、おはよー!とかおはよーうとか多用するけど・・・。

収集がつかない!

あ!まどかマギカ。ようやく完結したみたいなんで録画分掘り起こしてみていこうかな。今日学校ないし本気出す。

 

しかし学校がなくても7時には目が覚める。なんという健康的な生活。
というかココ数日、携帯のアラーム(7:00)の時点で居間にいたから、いつも部屋で20分くらいアラーム鳴りっ放しみたいな感じだった。

早起きは・・・うーんまぁ得かな。最近気がついたよ・・・。もう21(‘A`)

 

ってことでこんなところで~

 

 

ツイ名刺が届いた!

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

ツイ名刺とは

ツイ名刺←←リンクになってるよ
簡単に言うと、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クライアントは他にもあるので色々試してみるといいですよ。