Я создаю сайт, на котором пользователь имеет профили и профили, имеет фотографии профиля. Изображения изображений профиля необходимо поддерживать на моем локальном хранилище. Есть ли что-нибудь, что я могу использовать другие услуги, такие как Gravatar, который позаботится о изображениях профиля на моем сайте. Таким образом, мне не нужно будет сохранять пользовательские изображения в папке с сохранением папки и т. Д. Я просто попрошу, чтобы пользователи устроили ссылку Gravatar профиль и использовать его изображения профиля в профиле моего сайта. Я разрабатываю свой сайт в ASP.NET Просьба указать, есть ли другие услуги, которые могут помочь мне в этом. Спасибо заранее.Включите Gravatar на сайт
ответ
AjaxControlToolkit имеет Gravatar поддержка встроенная.
<ajaxToolkit:Gravatar runat="server"
Email="[email protected]"
Size="200"
Rating="R"
DefaultImageBehavior="Identicon"
DefaultImage="http://tinyurl.com/3bpsaac" />
Конечно, это может быть программно установлен как хорошо ...
Кроме того, если ваш сайт предоставляет OAuth логин (например, Facebook, LinkedIn и т.д.) вы можете также ссылаться на эти изображения профиля, а также используя их API. Facebooks, например, будет выглядеть следующим образом:
<asp:Image ImageUrl="http://graph.facebook.com/[fbid]/picture?type=large"
ToolTip="Facebook Avatar"
Width="180"
Height="180" />
заменить [fbid]
с их facebook ид.
Вам не нужно запрашивать их Gravatar, и вам не нужно ничего особенного, чтобы получить его (кроме адреса электронной почты пользователя). Из their docs:
Все URL на Gravatar основаны на использовании значения хэшированного в адрес электронной почты .... Для того, чтобы обеспечить последовательное и точное хэш следующие шаги следует предпринять, чтобы создать хэш :
- Обрезка начальные и конечные пробелы из адреса электронной почты
- Force все символы нижнего регистра
- md5 хэш конечная строка
Так что если у вас есть <asp:Image ID="_grav" runat="server" />
на вашей странице, в самом общем смысле, это просто:
string email = "yourEmail.CoolSite.net "; //this would be the email you have on file for them
string hashedEmail = FormsAuthentication.HashPasswordForStoringInConfigFile(email.Trim().ToLower(), "MD5").ToLower();
_grav.ImageUrl = String.Format("http://www.gravatar.com/avatar/{0}", hashedEmail);
Есть много других параметров, которые можно использовать (размер, по умолчанию изображение, если граватар не существует, и т. д.), которые являются просто повторными добавлениями к этому ImageUrl. Прочтите Image Requests.
Тот факт, что вы сделали ToLower() на хэшированном электронном письме, был той частью, которую я отсутствовал. Важно, по-видимому, снизить адрес электронной почты и хэш. Благодаря! – BrianLegg
Вы прочитали документацию Граватара? – SLaks