Tamaño de la foto en el método getPhotoUrl () Google Identity toolkit

Hice el login usando Google Identity Toolkit, he notado que la clase GitkitUser.UserProfile recupera el URL de la foto, pero es demasiado pequeño. La documentación de google no dice nada sobre el tamaño de la foto.

https://developers.google.com/identity/toolkit/android/reference/com/google/identitytoolkit/GitkitUser.UserProfile.html#getPhotoUrl ()

Por ejemplo, con el inicio de sesión de Facebook, el método getPhotoUrl () devuelve:

https://scontent.xx.fbcdn.net/hprofile-xap1/v/t1.0-1/p50x50/12651146_10208004779813340_3124516205553866664_n.jpg?oh=efa817d10aaf9d184a767bae81a71071&oe=576850AD

Por ejemplo, con el inicio de sesión de Gmail, el método getPhotoUrl () devuelve:

https://lh6.googleusercontent.com/-5XFRyKHh7Os/AAAAAAAAAAI/AAAAAAAABIo/Trf7GjTnFec/s96-c/photo.jpg

Eliminar / s96-c (o reemplazar a / s200-c) en la URL de la foto de Gmail parece grande, pero necesito una solución a la foto de Facebook.

2 Solutions collect form web for “Tamaño de la foto en el método getPhotoUrl () Google Identity toolkit”

La solución para android fue obtener el federatedId y después de esa llamada:

http://graph.facebook.com/ {federatedId} / picture? type = large

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome); client = GitkitClient.newBuilder(this, new GitkitClient.SignInCallbacks() { @Override public void onSignIn(IdToken idToken, GitkitUser user) { DataStorage.getInstance().setLastToken(idToken.getTokenString()); Configuration config = Configuration.fromMetaData(AppInfo.getAppInfo(LoginActivity.this).metaData); ApiClient apiClient = new ApiClient(config.getApiKey(), AppInfo.getAppInfo(LoginActivity.this), config.getServerWidgetUrl()); final GetAccountInfo.Request request = apiClient.newGetAccountInfoRequest(idToken); new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { GetAccountInfo.Response accountInfo = request.execute(); JSONArray users = accountInfo.getJsonResponse().optJSONArray("users"); JSONObject user = users == null ? null : users.optJSONObject(0); String email = user == null ? null : user.optString("email"); if (email != null) { JSONArray providerUserInfo = user.optJSONArray("providerUserInfo"); if (providerUserInfo != null && providerUserInfo.length() != 0) { for (int i = 0; i < providerUserInfo.length(); ++i) { JSONObject userInfo = providerUserInfo.optJSONObject(i); if (userInfo != null) { try { String userInfoString = userInfo.getString("federatedId"); if(userInfoString.contains("facebook.com")) { int lastSlash = userInfoString.lastIndexOf("/"); if(lastSlash != -1) { String federatedIdFacebook = userInfoString.substring(lastSlash + 1, userInfoString.length()); Log.i("federatedIdFacebook", federatedIdFacebook); } break; } } catch (JSONException e) { Log.e("LoginActivity", e.getMessage()); } } } } } return null; } }.execute(); } @Override public void onSignInFailed() { Toast.makeText(LoginActivity.this, "Sign in failed", Toast.LENGTH_LONG).show(); } }).build(); } 

Puede usar idToken para obtener el identificador del usuario en IDP (identificador de Facebook).

Vea los usuarios []. ProviderUserInfo []. FederatedId en https://developers.google.com/identity/toolkit/web/reference/relyingparty/getAccountInfo

Y luego usa el facebookId para obtener la imagen de la cuenta grande, con

http://graph.facebook.com/ {facebookId} / picture? type = large

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.