Skip to content

Instantly share code, notes, and snippets.

@gawaooooo
Last active December 14, 2015 00:59
Show Gist options
  • Save gawaooooo/5002601 to your computer and use it in GitHub Desktop.
Save gawaooooo/5002601 to your computer and use it in GitHub Desktop.
<html>
<head>
<meta charset="utf-8">
<title>Twitter + OAuth + JavaScript search api test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
"></script>
<script type="text/javascript" src="oauth.js"></script>
<script type="text/javascript" src="sha1.js"></script>
<script type="text/javascript">
// Twitterオブジェクトのコンストラクタ・プロトタイプ定義
function Twitter() {}
Twitter.prototype = {
consumerKey: "consumer key",
consumerSecret: "consumerSecret",
accessToken: "accessToken",
tokenSecret: "tokenSecret"
};
Twitter.prototype.get = function(api, content) {
var accessor = {
consumerSecret: this.consumerSecret,
tokenSecret: this.tokenSecret
};
var message = {
method: "GET",
action: api,
parameters: {
oauth_version: "1.0",
oauth_signature_method: "HMAC-SHA1",
oauth_consumer_key: this.consumerKey,
oauth_token: this.accessToken
}
};
for(var key in content) {
message.parameters[key] = content[key];
}
OAuth.setTimestampAndNonce(message);
OAuth.SignatureMethod.sign(message, accessor);
var target = OAuth.addToURL(message.action, message.parameters);
var options = {
type: message.method,
url: target,
dataType: "jsonp",
jsonp: false,
cache: true
}
$.ajax(options);
}
var twitter = new Twitter();
function update(data) {
// searchの場合
var tweets = data.statuses;
// userの場合
//var tweets = data.users;
console.log(tweets);
for(var i = 0; i < tweets.length; i++) {
// searchの場合
$("#test").append('<p><img src="' + tweets[i].user.profile_image_url + '">' + tweets[i].user.name + ' : ' + tweets[i].user.id + ' : ' + tweets[i].text + '</p>');
// followersの場合
//$("#test").append('<p><img src="' + tweets[i].profile_image_url + '">' + tweets[i].name + ':' + tweets[i].id + '</p>');
}
}
$(function() {
// オプションとコールバック関数の指定
// search/tweets ->API の limit が180
var content = {q: "#momoclo",count: 100, callback: "update"};
// followers/list ->API の limit が15
//var content = {callback: "update", cursor: -1};
// Twitter API の呼び出し search
twitter.get("https://api.twitter.com/1.1/search/tweets.json", content);
// user
//twitter.get("https://api.twitter.com/1.1/followers/list.json", content);
});
</script>
</head>
<body>
<div id="test">
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment