Графическое изображение пользователя Facebook не будет отображаться на мобильных устройствах

Я использую url https://graph.facebook.com/{app_user_id}/picture?width=120&height=120, чтобы показать изображение пользователя в моем приложении, но с утра этим он перестает работать на мобильных устройствах.

Теперь тот же URL перенаправляется на https://lookaside.facebook.com/platform/profilepic/?asid={app_user_id}&height=120&width=120. Этот url работает на рабочем столе, но на мобильном телефоне он перенаправляется снова на https://m.facebook.com/platform/profilepic/?asid={app_user_id}&height=120&width=120, и мобильная сеть отказывается выводить изображение. Если я попытаюсь загрузить его в адресной строке, он будет загружен, а не показан.

Я искал любые изменения в графике api на Facebook, но ничего не нашел. Любой намек на это? Спасибо.

Ответ 1

Кажется, это ошибка. Началось с моим приложением ранее утром. Пока еще не исправлено.

Несколько отчетов об ошибках, которые были представлены в Facebook для разработчиков:

Ответ 2

Хотя я не нашел официальных объявлений, Facebook в течение последних нескольких дней изменил их api, теперь, когда вы запрашиваете общедоступный профиль пользователя, url рисунка имеет дополнительные параметры, ext и хеш

Вызов URL-адреса без этих параметров возвращает ошибку 404.

Не уверен, что изменение влияет только на идентификатор страницы.

В настоящее время, когда вы запрашиваете данные общего профиля пользователя, URL-адрес выглядит так: https://lookaside.facebook.com/platform/profilepic/?psid=PAGE_SCOPED_ID&height=1024&ext=1522585606&hash=AeThc8c7EQDFgShs

до того, как он был просто

https://lookaside.facebook.com/platform/profilepic/?psid=PAGE_SCOPED_ID&height=1024

Мне кажется, что единственным известным решением в настоящее время будет запрашивать новые данные общего профиля и обновлять вашу базу данных.

Надеюсь, что это поможет.

Ответ 3

Сегодня я столкнулся с той же проблемой, и я нашел решение для этого, и это сработало для меня.

После входа в систему мы получим ниже URL профиля pic

http://graph.facebook.com/11111111111/picture?type=large&height=320&width=420

11111111111 - это ваш идентификатор id id/facebook

теперь нам нужно изменить этот URL-адрес, чтобы отображать изображение, вот код.

try {
     profile_pic = new URL("https://graph.facebook.com/" + id + "/picture?type=large");
     Log.i("profile_pic", profile_pic + "");
     Picasso.with(getContext()).
     load(profile_pic.toString())
     .placeholder(R.drawable.img)
     .into(imageviewId);
     }
catch (MalformedURLException e) {
       e.printStackTrace();
    }

id - ваш идентификатор socialid/facebook id

нам просто нужно удалить & height = 320 & ширина = 420 из URL.

вы можете сравнить оба URL:

http://graph.facebook.com/11111111111/picture?type=large&height=320&width=420

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

и да, вам также нужно изменить http на https