1

私に関連する質問はたくさんありますが、数時間かけてさまざまな回答を調べたり、自分で実験したりしても、まだ問題を解決できません!

Box の API にアクセスするために OAuth 2.0 プロトコルを使用しています。これまでのところ認証コードを取得できましたが、今はそれをアクセス コードと交換しようとしています。これまでのところ、すべて正常に動作しているようです。Box に POST リクエストを送信した後、https://www.box.com/api/oauth2/tokenにリダイレクトされ、対処方法がわからない JSON 応答を受け取ります。と。

JQuery の $.get および $.parseJSON 関数を使用してみましたが、コードをどのように構成する必要があるのか​​ 、そもそもこれに正しい方法でアプローチしているかどうかわかりません。

POSTに使用している関数は次のとおりです。

function post_to_url(path, params) {

    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", 'https://www.box.com/api/oauth2/token');

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "text");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}

これを呼び出すと、https://www.box.com/api/oauth2/tokenにリダイレクトされ、ブラウザに次の文字列が表示されます。

{"access_token":"H97GnkuWCRUxxx"expires_in":3600,"refresh_token":"cIJyyyyym1aSuNFmmC2PgTtiP2xfXm0dCmzzzz,"token_type":"bearer"}

私が得ることができるどんな助けにも本当に感謝しています、どうもありがとう!

4

1 に答える 1

3

これを行うのに jquery は必要ありません。実際には非常に簡単です。

var json = JSON.parse(the returned json var);

次に、次のように処理できます。

json.access_token; //this would be the access token

POST/GET リクエストに使用するコードは次のとおりです。

    var xhr=new XMLHttpRequest();
    xhr.open('POST','url', true);//the true bool makes it async
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //this url encodes the request (this is for if you have special values such as spaces and symbols)
    xhr.send(information to send goes here);
    xhr.onreadystatechange=function()
    {
        if(xhr.readyState===4)
        {
            if(xhr.status===200)
            {
                var json = xhr.responseText;
            }
        }
    };
于 2013-04-29T19:00:26.857 に答える