0

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

4

0 に答える 0