LoginSignup
57
56

More than 5 years have passed since last update.

TwitterAPI v1.1(GET限定)に簡単アクセス

Last updated at Posted at 2013-06-26

要oauth.js, sha1.js

Consumer key
Consumer secret
をさらさないとダメなので、他の人に勝手に使われるよなあ
でもしょうがないよなあ

@ktty1220 さんによる別バージョンもあります

index.html

<head>
<script src="http://oauth.googlecode.com/svn/code/javascript/oauth.js"></script>
<script src="http://oauth.googlecode.com/svn/code/javascript/sha1.js"></script>
<script src="getTwitterAPI.js"></script>
</head>

getTwitterAPI.js

// あらかじめアプリ登録して取得
var CONSUMER = {
    "key" : XXXXXXXXXXXXXXX,
    "secret" : XXXXXXXXXXXXXXXX 
};

// ユーザの自前アカウントで取ってきてもらってもいいし、アプリ固有のを埋め込んでもいい
var ACCESS = {
    "screen_name" : false,
    "key" : false,
    "secret" : false
};

// url : APIのURL。GETクエリを含むもの
// callBackFunc : コールバック関数 第一引数にAPIアクセスの結果が連想配列のObjectで渡る
// onerror : Functionをセットすると、scriptタグ埋め込みに失敗した時の挙動を定義可
function getTwitterAPI(url, callBackFunc, onerror){
    var parameters = {
        oauth_signature_method: "HMAC-SHA1",
        oauth_consumer_key: CONSUMER['key'],
        oauth_token: ACCESS['key'],
        callback: callBackFunc
    };
    var api_url = url;
    var message = {
        method: "GET",
        action: api_url,
        parameters: parameters
    };
    var secretKeys = {
        "consumerSecret" : CONSUMER['secret'],
        "tokenSecret" : ACCESS['secret']
    };

    OAuth.setTimestampAndNonce(message);
    OAuth.SignatureMethod.sign(message, secretKeys);
    var signed_url = OAuth.addToURL(api_url, parameters);

    var ele = document.createElement("script");

    if(is('Function', onerror)){
        ele.onerror = onerror;
    }

    var head = document.getElementsByTagName('head').item(0);
    ele.type = "text/javascript";
    ele.src = signed_url;
    head.appendChild(ele);
}

function is(type, obj) {
    var clas = Object.prototype.toString.call(obj).slice(8, -1);
    return obj !== undefined && obj !== null && clas === type;
}
使用例

getTwitterAPI('https://api.twitter.com/1.1/application/rate_limit_status.json?resources=users', 'callback_limit');
function callback_limit(json){
    var limitHash = json;
    console.log(limitHash);
}


57
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
56