2017-09-08 4 views
0

J'autorise une application Android pour Android, en utilisant le code ci-dessous. Comment puis-je obtenir des informations de profil à partir du code ci-dessous?Obtenir Alexa Informations sur le profil

private static final String[] APP_SCOPES= {"alexa:all"}; 
String PRODUCT_DSN = Settings.Secure.getString(mContext.getContentResolver(), 
       Settings.Secure.ANDROID_ID); 
     Bundle options = new Bundle(); 
     String scope_data = "{\"alexa:all\":{\"productID\":\"" + mProductId + 
       "\", \"productInstanceAttributes\":{\"deviceSerialNumber\":\"" + 
       PRODUCT_DSN + "\"}}}"; 
     options.putString(AuthzConstants.BUNDLE_KEY.SCOPE_DATA.val, scope_data); 

     options.putBoolean(AuthzConstants.BUNDLE_KEY.GET_AUTH_CODE.val, true); 
     options.putString(AuthzConstants.BUNDLE_KEY.CODE_CHALLENGE.val, getCodeChallenge()); 
     options.putString(AuthzConstants.BUNDLE_KEY.CODE_CHALLENGE_METHOD.val, "S256"); 
     options.putBoolean(AuthzConstants.BUNDLE_KEY.PROFILE.val, true); 

     mAuthManager.authorize(APP_SCOPES, options, authListener); 

Répondre

1

Enfin, je trouve la réponse, besoin Fetch le jeton d'accès, puis appelez l'api:

https://api.amazon.com/user/profile
tête: Autorisation », Bearer access_token

Par exemple:

String url = "https://api.amazon.com/user/profile"; 
OkHttpClient client = ClientUtil.getTLS12OkHttpClient(); 

Request request = new Request.Builder() 
     .url(url) 
     .addHeader("Authorization", "Bearer " + access_token) 
     .build(); 

client.newCall(request).enqueue(new Callback() { 
    @Override 
    public void onFailure(Call call, final IOException e) { 

    } 

    @Override 
    public void onResponse(Call call, Response response) throws IOException { 
     String s = response.body().string(); 




    } 
});