oauth API から Twitter アクセス トークンを取得しようとしています。私が使用しているプラグインはこれhttps://code.google.com/p/oauth/source/browse/#svn%2Fcode%2Fjavascriptです。これまでのところ、「401 署名とトークンの検証に失敗しました」というメッセージしか表示されません。
奇妙なことは、type:'POST' を設定したにもかかわらず、私の ajax 呼び出しが 'GET' リクエストになることです。jquery が型を POST から GET に変更しているようです。なぜそれをするのかわかりません。Macで実行しています。あなたの助け/ヒント/提案/アドバイスに感謝します. ありがとう!
$(関数() {
関数 myCallback(resp) {
console.log(応答);
}
var TwitterAPI;
TwitterAPI = (関数() {
var consumer_key = null;
var consumer_secret = null;
関数 TwitterAPI(cons_key, cons_secret) {
this.consumer_key = cons_key;
this.consumer_secret = cons_secret;
}
TwitterAPI.prototype._url = 関数 (データ) {
if (typeof data == '配列') {
return array_map([ // TODO
これ、「_url」]、データ);
} そうでなければ ((/boolean|number|string/).test(typeof data)) {
リターン encodeURIComponent(データ).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\ )/g, '%29').replace(/\*/g, '%2A');
} そうしないと {
戻る '';
}
}
TwitterAPI.prototype.myCallback = 関数(応答) {
console.log(応答);
}
TwitterAPI.prototype.getRequestToken = function() {
変数アクセサ = {
consumerSecret: this.consumer_secret, //this.consumer.consumerSecret,
tokenSecret: ''
};
変数メッセージ = {
メソッド: "POST",
アクション: "https://api.twitter.com/oauth/request_token",
パラメーター: {
oauth_signature_method: "HMAC-SHA1",
oauth_consumer_key: this.consumer_key, //this.consumer.consumerKey
oauth_callback: this._url("http://127.0.0.1/foobar/libs/oauth/wtf.html"),
}
};
OAuth.setTimestampAndNonce(メッセージ);
OAuth.SignatureMethod.sign(メッセージ、アクセサー);
var target = OAuth.addToURL(message.action, message.parameters);
message.parameters.oauth_signature = this._url(message.parameters.oauth_signature);
console.log(メッセージ.パラメーター);
$.ajax("https://api.twitter.com/oauth/request_token",
{ url: "https://api.twitter.com/oauth/request_token",
タイプ: 'POST',
データ型: 'jsonp',
jsonp: 'コールバック',
jsonpCallback: "myCallback",
データ: message.parameters、
成功: 関数 (データ、textResp、xhr) {
console.log(データ);
}、
エラー: 関数 (xhr、テキスト、エラー) {
console.log(テキスト);
}
});
};
TwitterAPI を返します。
})();
api = 新しい TwitterAPI(キー、シークレット);
$('button#request').on('click', function(e) {
e.stopPropagation();
api.getRequestToken();
});