La biblioteca de Picasso dejó de funcionar hoy con los acoplamientos del cuadro del gráfico del facebook

En mi aplicación uso la biblioteca de Picasso para cargar imágenes de urls. Es una biblioteca muy fácil de usar y fácil de usar, y simplemente hacer lo que necesito.

Sin embargo, hoy dejó de funcionar, y no mientras se desarrolla se detiene trabajando en un apk compilado.

Así que después de buscar y buscar la razón que acaba de encontrar esta cosa buggy:

Utilizo URL de gráfico de Facebook para cargar imágenes de perfil.

Aquí hay uno como: perfil pictre ,

el enlace es en realidad " http://graph.facebook.com/1464090949/picture?type=large "

Pero está redirigiendo a: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg

Por supuesto, tanto de llamadas de url que trabajan en un navegador, y usted puede ver la imagen de perfil.

Sin embargo, cuando pruebo ambos enlaces con Picasso:

ImageView iv = (ImageView)findViewById(R.id.imageView1); //Url1 NOT working, loads nothing. String url1 = "http://graph.facebook.com/1464090949/picture?type=large"; //Url2 is the same as URL1, i just copied it from a browser, and this is working String url2 = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg"; Picasso.with(this).load(url2).into(iv); 

Así que la conclusión es, Facebook tal vez cambió algo y de ahora en adelante Picasso no puede cargar imágenes de la gráfica.

¿Alguien puede sugerirme algo para que esto funcione? Por supuesto que puedo probar diferentes bibliotecas, pero si hay otra manera sería muy feliz.

Solución 1:

Cambie a https desde http.

Trabajo: https://graph.facebook.com/1464090949/picture?type=large

No funciona: http://graph.facebook.com/1464090949/picture?type=large

Solución 2:

Se encontró soulution sobre este tema.

Si desea por ejemplo: http://graph.facebook.com/1464090949/picture?type=large

Esta foto de perfil se puede utilizar:

https://graph.facebook.com/1464090949/?fields=picture.type(large)

Que devuelve un objeto JSON:

  { "id": "1464090949", "picture": { "data": { "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg", "is_silhouette": false } } } 

¡Y tada! Ahí está. La clave de url es la URL redireccionada que puedes usar para cargar tus imágenes.

(Esto necesitará el oAuth que no probé, apenas palillo con la solución 1)

Prueba esto. trabajado para mí perfectamente

Dependencia: compilar 'com.squareup.okhttp: okhttp: 2.5.0'

 Picasso.Builder builder = new Picasso.Builder(mContext); builder.listener(new Picasso.Listener() { @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { /*holder.getIvSpeakerPicture() .setImageDrawable(context.getResources() .getDrawable("your drawable id"));*/ } }); builder.downloader(new OkHttpDownloader(mContext)); builder.build().load(image).into(viewHolder.image); 

En caso de que esté usando Amazon AWS CloudFront igual que yo, puede visitar esta página para obtener instrucciones detalladas de Amazon sobre cómo configurar el reenvío de URL.

Como mínimo, para que Picasso funcione con sus URL redireccionadas, las URL deben admitir https. Es decir. https://yourdomain.com debe redirigir a https://yourAWScloudfrontdomain.net

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS

  • Zoom de TouchImageView ajustado a fotograma con Picasso
  • Cómo agregar la biblioteca picasso en el estudio de android
  • La biblioteca de Picasso no carga imágenes de la tarjeta SD en Android
  • Android Picasso - Marcador de posición y estilo de imagen de error
  • Buscar imágenes con Callback en Picasso?
  • Picasso detectó un OkHttp no admitido en el classpath
  • No puedo almacenar en caché las imágenes mientras que bindind la imagen usando MvvmCross
  • ¿Es posible descargar imágenes de la memoria caché en picasso?
  • Actualizar / cambiar el mapa de bits en caché utilizando Picasso y OkHttp
  • Descargar y guardar imágenes con Picasso
  • Adición de marcadores de url con Picasso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.