飲酒カレンダー
私の飲酒の状況を表示する「飲酒カレンダー」を作ってみました。
Twitterで「アルコール」や「#twinomi」という文字列を含むツイートを抽出して整形しています。
今年はアルコールを控えるつもりでしたが、10日間のうち7日も飲んでいました。元日は前日の飲み過ぎで倒れていましたし、2日は車の運転をするため我慢。実質、1日しか休んでいません。
「禁煙セラピー」は効果があったそうですが。
私の飲酒の状況を表示する「飲酒カレンダー」を作ってみました。
Twitterで「アルコール」や「#twinomi」という文字列を含むツイートを抽出して整形しています。
今年はアルコールを控えるつもりでしたが、10日間のうち7日も飲んでいました。元日は前日の飲み過ぎで倒れていましたし、2日は車の運転をするため我慢。実質、1日しか休んでいません。
「禁煙セラピー」は効果があったそうですが。
TwitterAPIを使うと自分のツイートなどが簡単に取得できます。
またjQueryを使うとこれをブラウザに簡単に表示できます。
そのための最低限のサンプルを紹介します。
HTMLは次のようにします。
divでもpでも何でもよいのですが行数を数えるためにolにしました。
jQueryを使っているという前提です。
getJSONを使うと簡単にツイートを取得できます。idは私のものです。
getJSONは取得したツイートを配列「data」に格納します。
eachは配列から一つずつ取り出して「item」に格納します。
ツイートは「item.text」で取得できます。
「item.created_at」とするとツイート時刻です。
Twitter APIについて調べたので、メモ的に書いておきます。
URLとして「http://api.twitter.com/1/statuses/user_timeline/stabucky.json?count=1」を指定すると次のようにJSON形式で戻ってきます。
つまり直近1回分のツイートの内容を示しています。
ツイートの内容です。
「\u300c」のように文字化けしているように見えますが、これはエンコードされているだけで、ブラウザに表示すると「気」と正しく表示されます。
省略しました。
ツイートしたときのアプリケーションが表示されます。
ツイートしたときの時刻です。
省略しました。
ユーザーの名前などの情報が表示されます。
ツイートするたびに同じ情報が表示されます。
上の例ではcount=1なので1回だけですが、count=100とすると、その時点のユーザー情報について同じものを100回返してきます。
そのツイートを指す、ユニークな(唯一の)番号です。
idもid_strも同じものですが、idは数値、id_strは文字列になっています。
JavaScriptなどのプログラムでidの数値が大きすぎて丸められてしまうケースがあります。その場合はid_strを使うとうまくいく場合があります。文字列なので丸められません。
私はTwitterのbotをやっています。
東日本大震災が起きてからbotを止めていたのですが、1週間経ったので再開しました。
このbotは自分からフォローすることはありませんが「#followme」などのタグを付けているのでフォローされることがあります。
この場合、必ず自動的にフォロー返しする仕組みになっています。
しばらくするとアンフォローされていることがあります。この場合、botから自動的にアンフォローするような仕組みにはなっていません。
先ほど確認したところ、約5000フォローに対して約4600フォロワーとなっていました。つまり約400アカウントはアンフォローされたままになっています。
これらのアカウントを一括してアンフォローすることにしました。
そこで使ったのが次のウェブサイト。
ManageFlitter – Fast & Easy Unfollowing for Twitter
ログインするとフォロー状況を調べてくれます。
Not Following Backを見ると、アンフォローされたままになっているアカウントが表示されます。
これら全てにチェックを入れて「Unfollow 100 Selected」をクリックします(100個選択した場合)。
しばらくするとアンフォローしてくれます。
まだアカウントがまだ表示されているので、未練がある場合は、ここで元に戻すこともできます。
未練がない場合には「Clear 100 Unffollowed」をクリックするとアカウントが消えます。
他にも最近ツイートしていないアカウントなどを調べることができますので便利です。
Twitterの自分のツイートを記録してブログ風に表示できるページを作っています。
スタニッキ
TwitterのAPIを使い、JSON形式で取得し、PHPでMySQLに保存します。
最近、これが正しく動作しなくなりました。
Twitterは各ツイートにidが付けられていますが、このidが桁落ちします。Twitterのidは16桁あるのですが、私のプログラムでは有効なのは上12桁だけで下4桁が「0000」になってしまいます。
原因を探ってみると、最近、Twitterの仕様が変わったようです。
idが11月4日までは11桁だったのが5日に15桁に増え、7日には16桁になっています。
11月5日に仕様の変更があったようです。
PHPでは、変数に数値を代入したときに自動的に丸めてしまいます。これが原因だと思われます。このようなときは数値(整数)ではなく文字列で処理すればよいのですが、TwitterのAPI(JSON形式)では「”id”:123456789」となっていて、PHPでは数値として読み込んでしまいます。
強制的に文字列として読み込む方法を模索したのですが、うまくいきません。
しかし簡単な解決方法がありました。
今回の仕様の変更に伴い、APIの仕様も変わっていたようです。
「id」の他に「id_str」という項目が新設されていました。
“id”:123456789
“id_str“:”123456789″
このように値は一致しますが型が異なります。
PHPのコードの「id」を「id_str」に置き換えるだけで正しく動作するようになりました。
「in_reply_to_status_id_str」、「in_reply_to_user_id_str」も同様です。
11月5日以降に取得した内容が間違っていたので、これらを削除し、再度、実行したところ、正しく取得することができました。
私は「ヒナ先輩」というTwitterボットを作って使っています。
アカウントは「stabot」です。
色々と実験しながら内容を変えています。
現在の内容は次の通りです。
投稿の間隔は10分です。24時間、動いています。サーバのcronを利用しています。
普段は、あらかじめ書いておいた、文字列をランダムに投稿します。
午前7時からは、まず、今日が誕生日の有名人を一人ずつ紹介します。以前は文字数が許す限り数人ずつ投稿していましたが、まとめる意味がないので、最近、変更しました。
これらのデータは「ダレナノ」と共通です。
次に今日亡くなった有名人を一人ずつ紹介します。
これが終わると今日の出来事を一件ずつ紹介します。
これらのデータは「ドンナヒ」と共通です。
次は、「今日の運勢」のコーナーで、今日、運勢の良い誕生日ベストスリーとワーストワンを投稿します。
これは最近、追加した機能です。
これらがすべて終わると、また文字列をランダムに投稿します。
これらと並行して、次の機能があります。
まずフォローされた場合、自動的にフォロー返しをします。
手動でのフォローは一切していません。
リムーブやブロックはしませんが、一日に何件もリプライしてくるボットがあったので、これについては手動でブロックしました。
またリプライされた場合、自動的にリプライ返しをします。
「リプライいただき、ありがとうございます」という定型文しか返せません。
改良したいところです。
最近、加えたのは、自動リツイート機能。私のアカウント「stabucky」のツイートのうち「@」を含まないものをリツイートします。
Twitterで使えるハッシュフラッグをGoogle日本語入力で簡単に使えるようにテキストファイルを作り辞書に登録できるようにしました。
ご自分のパソコンに保存し登録してください。
詳しい登録の方法は割愛します。
例えば「たぐわーるどかっぷ」ならば「#worldcup」が、「たぐにほん」ならば「#jpn」が候補に現れます。
オランダは「#ned」ですよ。
Twitterにはワールドカップのためにハッシュフラッグという仕組みがあります。
#jpnなどと書くと自動的にワールドカップ出場国の国旗が表示されます。
iPhoneでこのハッシュフラッグを入力するのは面倒なので連絡先に登録する方法を考えました。
上のファイルを自分のパソコンに保存します。
メールにこのファイルを添付しiPhoneに送信します。
iPhoneでこのファイルを開きます。
連絡先に登録します。
ふりがなを「んたぐあめりか」のように「んたぐ」+国名としてあります。気に入らなければ「んたぐ」を削除してください。
これで簡単にハッシュフラッグを入力することができます。
Twitterのスクリーンショットをブログなどに貼り付けるのは面倒なもの。
これを一発で実現するためのツールがこれ。
で、試したのが下の通り。
金子誠ってタムケンみたいだね。 #chibalotte
たしかに便利。
しかしポストした時刻が変わっちゃっているような気がしますが。
私はTwitterをやっています。
過去の投稿をブログ風にまとめるページを作ってみました。
TwitterのAPIを使って発言すべてをMySQLに取り込み、そこにクエリーを送ってデータを取得しています。
これを利用して体重グラフを自動的に作成するコードを埋め込んでいます。
他にもTwitterを活用する方法はないか、考えています。
小遣い帳なんてどうでしょう?
同じ発想でTwilogというサービスがあります。これは誰でも利用できます。最初の取得発言数の上限が3,200件。今、私の発言数は3,480件でちょうど、越えたところ。残念。
最近のコメント