Pythonでtwitterの情報を取得する
必要なモジュール
インストール
python-twitterを入れれば他のモジュールも入ってくる模様
$ sudo easy_install python-twitter
アプリケーションを登録する
接続に必要なトークンを取得するために、My applications | Twitter Developersで作成するアプリケーションを登録する。
作成したアプリケーションページの「Details」の一番下にある、 「create my access token」を押してアクセストークンを作成しておく。
URLの入力があるけど、後から変更できるので仮のもので問題ない。
チュートリアル
トークン管理ファイル
生成したトークン等を保存するためにseccret.pyを作成します。
- secret.py
twDict = { 'consumer_key' : 'xxxxxxxxxxxxxxxxxxxx', 'consumer_secret' : 'xxxxxxxxxxxxxxxxxxxx', 'access_token_key' : 'xxxxxxxxxxxxxxxxxxxx', 'access_token_secret' : 'xxxxxxxxxxxxxxxxxxxx' }
自分のツイートを取得する
ここから実際の処理を書いていきます。
まずは、自分のツイートを取得する。 これで直近20件のツイートが取得できます。
import twitter import secret api = twitter.Api( consumer_key = secret.twDict['consumer_key'], consumer_secret = secret.twDict['consumer_secret'], access_token_key = secret.twDict['access_token_key'], access_token_secret = secret.twDict['access_token_secret'] ) # twitter.Statusオブジェクトが返ってくる status = api.GetUserTimeline('mofumofu3n') for tweet in status: print tweet.text
twitter.Status
以下でドキュメントの確認ができる。
$ pydoc twitter.Status
twitter.Status = class Status(__builtin__.object) | A class representing the Status structure used by the twitter API. | | The Status structure exposes the following properties: | | status.created_at // 作成日 | status.created_at_in_seconds # read only | status.favorited | status.favorite_count | status.in_reply_to_screen_name | status.in_reply_to_user_id | status.in_reply_to_status_id | status.truncated | status.source | status.id // ツイートID | status.text // ツイート内容 | status.location | status.relative_created_at # read only | status.user // ユーザー | status.urls // | status.user_mentions | status.hashtags | status.geo | status.place | status.coordinates | status.contributors
ドキュメント
python-twitterのドキュメント読むためには下記のようにする。
英語だけど・・・
$ pydoc twitter.Api
mongoDBの操作
使用中のDBの確認
> db
存在するデータベースの確認
> show dbs gamedb 0.203125GB local (empty) test 0.203125GB
ドキュメントの作成
- gamedbのtestコレクションにドキュメントを作成する。
- insert時にコレクションが存在しない場合、自動で生成される
- コレクションの構成は以下のようにする
name : ユーザ名 score : 得点 date : 日付(UNIXTIME)
- コレクションを作成する
> use gamedb # DBを変更 switched to db gamedb > db gamedb > db.test.insert({"name":"hoge", "score":1111, "date":1371961245}) # ドキュメント作成
ドキュメントの参照
- コレクションに含まれる全ドキュメントを参照
> db.test.find() { "_id" : ObjectId("51c678406657d13ae3f6dafb"), "name" : "hoge", "score" : 1111, "date" : 1371961245 }
- nameにfugaを指定してドキュメントを参照
> db.test.insert({"name":"fuga", "score":1111, "date":1371961245}) # ドキュメントを追加 > db.test.find({"name":"fuga"}) # 条件を指定して参照 { "_id" : ObjectId("51c678e56657d13ae3f6dafc"), "name" : "fuga", "score" : 1111, "date" : 1371961245 }
- nameにfuga以外を指定してドキュメントを参照
> db.test.find({"name":{$ne:"fuga"}}) { "_id" : ObjectId("51c678406657d13ae3f6dafb"), "name" : "hoge", "score" : 1111, "date" : 1371961245 }
Android SDKのダウングレード方法
概要
revision22に変えてから軒並みビルド出来なくなった。
設定を変えるのも面倒なのでいっその事ダウングレードしてみる。
環境
準備
まず、Android SDKとADTを上記のリンクからダウンロードする。
ここではダウンロードディレクトリの下で解凍しておく。
Android SDKのインストール
すでにインストールされているAndroid SDKをゴミ箱にポイする。
自分の環境ではアプリケーションディレクトリにダウロードされているのでそれを削除。
$ rm -rf /Applications/android-sdk-macosx
次に解凍したAndroid SDK(android-sdk-macosx)をアプリケーションディレクトリに移動する。
$ cd ~/Downloads $ mv android-sdk-macosx /Applications
移動したandroid-sdk-macosxディレクトリ内にあるtools/androidを実行する。
あとは、必要なAPI等を入れていく。
ここでAndroid SDK Toolsのチェックを必ず外す
そうしないとまたr22に戻ってしまうので要注意
API等のダウンロード作業にはかなり時間がかかるのでマターリする。
ADTのインストール
まずはEclipseを起動し、[ヘルプ]→[新規ソフトウェアのインストール]を開く
「使用可能なソフトウェア」のウィンドウが表示されるので、ここで[追加]を開く。
「リポジトリーの追加」が表示されるので、[アーカイブ]を押し、ダウンロードしておいた[ADT-21.0.1.zip]を選択する。名前は特に入力する必要がない。
名前に「開発ツール」が表示されているので、ここにチェックをつけ、[次へ]を押していき、途中で[使用条件の条項に同意します]にチェックをつけ[完了]ボタンを押す。
作業後にEclipseを再起動する。
おわりに
実はこれだけの作業でダウングレード出来る。
手動でインストールするのと大差ないです。
参考
Node.jsでGET/POSTリクエストを投げてみる。
概要
APIを叩いたりする時に役立ちそうだからやってみる。
準備
ライブラリ
以下のライブラリを使う。
ライブラリ準備
$ npm install request
コード
URLに対してPOSTリクエストで、valueとhugaを送っている。
Content-Typeは「application/x-www-form-urlencoded
」となっている。
var request = require('request'); // URL var baseUrl = 'http://hogehoge.com/hugahuga'; request.post( baseUrl, { form: { key: 'value', hoge: 'huga'} }, function (err, res, body) { if (!err && res.statusCode == 200) { var parse_body = qs.parse(body); console.log(body); } else { console.log(body); } } );
Content-Typeを「application/json」でリクエストする時はjsonオプションをtrueにする。
var request = require('request'); // URL var baseUrl = 'http://hogehoge.com/hugahuga'; request.post( {url: baseUrl, json:true}, { form: { key: 'value', hoge: 'huga'} }, function (err, res, body) { if (!err && res.statusCode == 200) { var parse_body = qs.parse(body); console.log(body); } else { console.log(body); } } );
nvm(Node Version Manager)のインストール
nvm(Node Version Manager)のインストール
nvmとは
nvmはNode.jsのバージョンを管理できるツールです。
nvmのインストール方法
既にインストールしているものを削除
これからnvmでnode.jsを管理することになるので、既にインストールされているものは手動で削除します。
$ cd /usr/local $ sudo rm -rf {bin,lib,include}/node share/man/man1/node.1
nvmのインストール
GitHubからチェックアウトし~/.nvm
に配置します。
$ git clone git://github.com/creationix/nvm.git ~/.nvm
nvmを使えるようにする
nvm.shを実行する。
$ source ~/.nvm/nvm.sh
Node.jsをインストールする
nvm経由でNode.jsをインストールする。今回は現安定版のv0.10.5
をインストールします。
$ nvm install v0.10.5
インストールされているか確認する。
nvmからNode.jsをインストールするとnpmも一緒にくっついてくるようなので、そちらも確認する。
$ node -v v0.10.5 $ npm -v 1.2.18
ターミナル起動時にnvmを起動する。
ターミナル起動毎にコマンドを打つのは面倒なので、.bashrc等の起動時に実行されるファイルに記述しておく。
#nvmの利用 source ~/.nvm/nvm.sh # v0.10.5のnode.jsを使う nvm use "v0.10.5"
nvmの機能
インストールしているNode.jsを表示する
lsコマンドでリスト表示し、現在使用しているバージョンが表示されます。
$ nvm ls v0.8.23 v0.10.5 current: v0.8.23
使用するNode.jsを切り替える
useコマンドを使うと、使用するバージョンを切り替えることができます。
$ nvm use v0.10.5 Now using node v0.10.5 $ nvm ls v0.8.23 v0.10.5 current: v0.10.5
参考
こちらを参考にさせて頂きました。