飲酒カレンダー
私の飲酒の状況を表示する「飲酒カレンダー」を作ってみました。
Twitterで「アルコール」や「#twinomi」という文字列を含むツイートを抽出して整形しています。
今年はアルコールを控えるつもりでしたが、10日間のうち7日も飲んでいました。元日は前日の飲み過ぎで倒れていましたし、2日は車の運転をするため我慢。実質、1日しか休んでいません。
「禁煙セラピー」は効果があったそうですが。
私の飲酒の状況を表示する「飲酒カレンダー」を作ってみました。
Twitterで「アルコール」や「#twinomi」という文字列を含むツイートを抽出して整形しています。
今年はアルコールを控えるつもりでしたが、10日間のうち7日も飲んでいました。元日は前日の飲み過ぎで倒れていましたし、2日は車の運転をするため我慢。実質、1日しか休んでいません。
「禁煙セラピー」は効果があったそうですが。
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の投稿の際に「朝食は、〇〇。」などと書くと自動的にそれを抽出して表にまとめるようになっています。
レコーディングダイエットの一環です。
Firefoxのロケーションバーにキーワードを入れて検索する「スマートキーワード」を使ってToodledoにタスクを入れる方法です。
実は直に入れるのではなく、Twitterを経由します。
まずは次の記事を参考にTwitterとToodledoの設定をしておいてください。
You Look Too Cool » TwitterからToodledoにタスクを入れる
これで設定は終わりです。
Firefoxのロケーションバーに「td 新しいタスク」と入力してEnterキーを押してください。
Twitterが開き、入力欄に「d toodledo 新しいタスク」とセットされているはずです。
ツイートボタンを押せばToodledoに情報が送られてタスクがセットされます。
このようなTwitterをトリガーにするサービスは他にもありますが実際使うとなると面倒なもの。
しかしスマートキーワードを使うと一手間省けますので試してみてください。
先日、PHPを使ってはてなハイクに投稿する方法を書きましたが、Twitterに投稿する方法も書いておきます。
詳しくはPHP+OAuthでTwitter – SDN Projectに書かれています。ありがとうございました。
「OAuth.php」と「twitteroauth.php」が必要になります。abraham/twitteroauth – GitHubからダウンロードします。
以下に書くコードと同じフォルダに入れておきます。
ツイートする内容をセットして実行します。
ボットにする場合はこの辺りを改造します。
実際に投稿する部分です。
「$url」などを書き換えると、フォローしたりファボったりする関数に書き換えられます。
OAuth認証の部分です。
TwitterはOAuth認証を使います(はてなハイクはベーシック認証)。
この手続きが面倒なところですが、一度やればすぐに分かると思います。
https://twitter.com/oauth_clientsで登録して、「Consumer keyの値」「Consumer secretの値」「Access Tokenの値」「Access Token Secretの値」を入手します。
これを上のコードの該当箇所にセットしてください。
ちょっと書き換えて「twitterPost()」に直にセットしてもよいのですが、使い回しを考えると別の関数にしておいた方がよいと思います。
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でこのファイルを開きます。
連絡先に登録します。
ふりがなを「んたぐあめりか」のように「んたぐ」+国名としてあります。気に入らなければ「んたぐ」を削除してください。
これで簡単にハッシュフラッグを入力することができます。
最近のコメント