"Diary" インターネットさんへの恩返し

いつもソースコードコピペばかりなので,みなさまへ少しばかりの恩返しを

Node.jsでTwitter API 1.1のあれこれ



スポンサーリンク

Node.jsでTwitter API 1.1を使う方法を。nodeのモジュールで「twitter」も使えるんだけど、あれこれラッピングされているもんで、Twitter APIとの対応がよく分からないし、機能も限定されている。ということでoauthモジュールで使う方法を以下に。

Twitterのカスタマキーなどの取得

以下のURLを参照にAPIをキックするときに必要なキーを取得します。
TwitterのAPIを使用するために必要なキーを取得する手順 - Hello API

oauthモジュールのインストール

oauthが入っていない場合インストールしてください。

npm install oauth

app.js側の設定

http://127.0.0.1:3000/get/tw/<スクリーン名>とかで、ajaxでgetとしてくるという例として以下のように記載。getTwUserはコントローラ側に設定する、exportsのやつです。

app.get('/get/tw/:val?', routes.getTwUser);

コントローラ側の設定(例:index.js)

/* グローバル変数として設定 */
var OAuth = require('OAuth');
var oauth = new OAuth.OAuth(
      'https://api.twitter.com/oauth/request_token',
      'https://api.twitter.com/oauth/access_token',
      'your consumer_key',
      'your consumer_secret',
      '1.0A',
      null,
      'HMAC-SHA1'
);

var g_key1 = 'your access_token_key';
var g_key2 = 'your access_token_secret';

exports.getTwUser = function(req, res){
	//ユーザ情報を引っ張ってくるクエリの例 req.params.valにクライントから指定したscreen nameが入ります。
	var query = 'https://api.twitter.com/1.1/users/show.json?screen_name=' + req.params.val;
	oauth.get(query,g_key1,g_key2,function (err, data){
	   	if (err) console.error(err);
           //クライアント側に取得結果データをjsonで送信します。
	    res.send(JSON.parse(data));
	});

};

クライアント側のスクリプト(index.ejs)

ajaxでgetする関数getTwDataDetail()を呼び出します。

<input type="text" class="field" id="tw_deital" name="tw_detail" placeholder="screen name">
<button onclick="getTwDataDetail()">get</button>

クライアント側のスクリプト(main.js)

エラー処理はお任せします。

function getTwDataDetail(){

	var val = $("#tw_deital").val();
	url = "http://127.0.0.1:3000/get/tw/" + val,

	$.get(url,function(data,rs){

	    if(rs=='success'){
                console.log(data);
	    }
	});

}

うん。勉強って大事。

Twitter API ポケットリファレンス (POCKET REFERENCE)

Twitter API ポケットリファレンス (POCKET REFERENCE)

シングルページWebアプリケーション ―Node.js、MongoDBを活用したJavaScript SPA

シングルページWebアプリケーション ―Node.js、MongoDBを活用したJavaScript SPA