2013-03-08 1 views
2

Я создаю сайт, на котором пользователь имеет профили и профили, имеет фотографии профиля. Изображения изображений профиля необходимо поддерживать на моем локальном хранилище. Есть ли что-нибудь, что я могу использовать другие услуги, такие как Gravatar, который позаботится о изображениях профиля на моем сайте. Таким образом, мне не нужно будет сохранять пользовательские изображения в папке с сохранением папки и т. Д. Я просто попрошу, чтобы пользователи устроили ссылку Gravatar профиль и использовать его изображения профиля в профиле моего сайта. Я разрабатываю свой сайт в ASP.NET Просьба указать, есть ли другие услуги, которые могут помочь мне в этом. Спасибо заранее.Включите Gravatar на сайт

+4

Вы прочитали документацию Граватара? – SLaks

ответ

3

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 ид.

2

Вам не нужно запрашивать их Gravatar, и вам не нужно ничего особенного, чтобы получить его (кроме адреса электронной почты пользователя). Из their docs:

Все URL на Gravatar основаны на использовании значения хэшированного в адрес электронной почты .... Для того, чтобы обеспечить последовательное и точное хэш следующие шаги следует предпринять, чтобы создать хэш :

  1. Обрезка начальные и конечные пробелы из адреса электронной почты
  2. Force все символы нижнего регистра
  3. 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.

+1

Тот факт, что вы сделали ToLower() на хэшированном электронном письме, был той частью, которую я отсутствовал. Важно, по-видимому, снизить адрес электронной почты и хэш. Благодаря! – BrianLegg