2

Tizen で oAuth 2.0 を使用して Google 認証を実装しようとしています。ここからステップに従っています。リンクからの指示に基づいて、ユーザーコードを取得できます。しかし、アクセストークンとリフレッシュトークンを取得するための無効なリクエストを常に取得しています。私のリクエストは以下の通りです。

var urlToken ="https://accounts.google.com/o/oauth2/token?"+ 
        encodeURI("client_id=<<my client id>>&" +
        "client_secret=<<my client secret>>&" + 
        "code=<<Device code received in first step>>&" +
        "grant_type=authorization_code");
$.ajax({
    url:urlToken,
    type:"POST",        
    headers:{
        "Content-Type": "application/x-www-form-urlencoded",
        "Content-length" : "250"
    },
    accepts: "applicatin/json",
    success:function(response){
        console.log("access token response success");
        console.log(response.access_token)
    },
    error:failure
});

何が問題なのか理解できませんでした。同じことを実装する他の方法があることを更新してください。

注: Tizen Webapp からこれを実装しようとしています。

4

1 に答える 1

1

次のコードで動作するようになりました。content-type と content-length を明示的に設定するだけでなく、クエリ文字列でデータをマークすることで間違いを犯しました。content-type はデフォルトで「application/x-www-form-urlencode」です。ランダムクリックで解決策を得ました。

var urlToken ="https://accounts.google.com/o/oauth2/token"+ 
var dataValue = "client_id=<<my client id>>&" +
        "client_secret=<<my client secret>>&" + 
        "code=<<Device code received in first step>>&" +
        "grant_type=http://oauth.net/grant_type/device/1.0";
$.ajax({
    url:urlToken,
    data:dataValue,
    crossDomain:true,
    type:"POST",
    success:function(response){
      if(response.error != null){
            <<Call the same function again>>;
        }
        else{
            console.log("Access Token :" + response.access_token);
            console.log("Token Type : " + response.token_type);
            console.log("Expires : " + response.expires_in);
            console.log("Refresh Token : " + response.refresh_token);
        }
    },
    error:failure
});

ありがとうございます

私はこれこれが役立つと信じています

于 2013-03-20T13:53:46.397 に答える