golang_微信頭像過期無效的判定

背景

微信用戶更新頭像,原有的頭像url會失效,這時需要對失效的頭像做一個處理。

方案一

微信官方文檔中 授權後接口調用有下列描述:

請注意,在用戶修改微信頭像後,舊的微信頭像 URL 將會失效,因此開發者應該自己在獲取用戶信息後,將頭像圖片保存下來,避免微信頭像 URL 失效後的異常情況。

這裏的建議是在本地服務器存儲一遍用戶頭像,這樣就不會產生用戶頭像失效的情況。同時默認用戶的頭像爲第一次綁定時的頭像。

方案二

判斷用戶頭像失效的狀態,在調用微信授權時,更新頭像爲獲取的最新用戶頭像。

// url 一個無效頭像
url := “http://wx.qlogo.cn/mmopen/kr9ShguI1uzOvkB15VXrdPWegpCW6OHd9sbdgPmicVTIMibT3bMd226KZb4ibv1XQDjV8lH0DdpjZRQ6vkO47zMibjU8cEQWGhrD/0

在這裏插入圖片描述

// url2 一個正常頭像地址
url2 := ”https://wx.qlogo.cn/mmopen/vi_32/fvicdicI5zNc0xEYxhxp77qOOawaBVJ9sT01XJVcppvcnLIibOm3WlzHGkVYkfdoEnibHviclpib7AEZFF9kxWTqH29g/132

在這裏插入圖片描述
這裏根據返回頭部裏的X-Errno字段進行判斷是否有效。

// isValidAvatar 驗證當前頭像是否有效
func isValidAvatar(url string) bool {
	header, err := http.Get(url)
	if err != nil || header.Header["X-Errno"] != nil {
		return false
	}
	return true
}

todo

如果用戶沒有走微信授權的過程,頭像就一直無法更新。像在微信裏面一般只在第一次進行授權操作,之後就不用再次授權,這樣頭像無效時該怎麼進行更新?
需要定時任務去更新用戶頭像?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章