java根據郵箱獲取Gravatar頭像 發布於 2 年前 (2017年12月12日) – 1894 次檢閱
- 2020 年 4 月 9 日
- 筆記
在網上找了很多根據郵箱獲取Gravatar頭像的教程都是php的…
好吧我也記錄下來….
首先嘛,是需要到https://en.gravatar.com/ 註冊或者登錄吧..
然後可以根據php的語言轉換…
php獲取Gravatar頭像是這樣仔轉換的
$email = "[email protected]"; $gravatarImg = 'https://s.gravatar.com/avatar/' . md5($email) . '?s=32';
因為我的郵箱轉化為md5後是162d8d081d380691c5279df2bbef4152
所以這時候$gravatarImg 是https://s.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32
其實?s=xx是圖片大小
最後http://www.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32 也是可以獲取圖片…
現在我們來對比一下官網的吧…
看到這個圖片是不是和我上面解釋相差無幾吧..但是最重要的一點是…你的郵箱在Gravatar上存在上傳的圖片..
下面記錄一下java實現吧..
package com.blog.util; import java.security.MessageDigest; public class Functions { public static String emailToMd5(String message){ String temp = ""; try{ MessageDigest md5Digest = MessageDigest.getInstance("MD5"); byte[] encodeMd5Digest = md5Digest.digest(message.getBytes()); temp = convertByteToHexString(encodeMd5Digest); }catch (Exception e) { e.printStackTrace(); } return temp; } public static String convertByteToHexString(byte[] bytes){ String result = ""; for(int i=0;i<bytes.length;i++){ int temp = bytes[i]&0xff; String tempHex = Integer.toHexString(temp); if(tempHex.length()<2){ result +="0"+tempHex; }else{ result +=tempHex; } } return result; } //根據email獲取gravatar頭像 public static String getGravatar(String email) { String emailMd5 = emailToMd5(email); //設置圖片大小32px String avatar = "https://s.gravatar.com/avatar/"+emailMd5+"?s=32"; return avatar; } public static void main(String[] args) { // String emailMd5 = emailToMd5("[email protected]"); // System.out.println(emailMd5);//162d8d081d380691c5279df2bbef4152 // System.out.println(emailMd5.equals("162d8d081d380691c5279df2bbef4152"));//true String gravatarImg = getGravatar("[email protected]"); System.out.println(gravatarImg); //輸出https://s.gravatar.com/avatar/162d8d081d380691c5279df2bbef4152?s=32 } }
原理其實很簡單,就是把郵箱轉化成md5,然後拼接到Gravatar圖片地址上面..
如果你覺得不信的話,可以去實現….