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(); });