5月10日 坚果Pro
到手,Smartisan OS
很赞,但我不太喜欢手机联系人的头像,没特色、辨识度不高。
微信用多了,一看头像就能想到具体的人,要是联系人头像能和微信好友头像一样就好了。
用蛮力,一个一个修改联系人头像当然可行,但这样的纯体力活程序员不应该做。
先网上搜了下,有类似需求,如“QQ头像如何同步到手机联系人”,但没看到解决方案,只有靠自己了。
以下是我的思路,先说明一下,我习惯手机联系人姓名、微信好友备注名都使用真名,也就是说二者能以此关联起来。
- 获取微信好友名称和头像,生成
name-photo-map
- 遍历手机联系人,根据联系人姓名去
name-photo-map
中查找,为联系人添加头像。
下面来看看具体实现。
1. 工具
- Chrome浏览器
- NodeJS
2. 获取微信全部好友的名称和头像
Chrome F12打开开发者工具,登录微信网页版,查看Network。
这个请求返回的是JSON,全部好友的信息都在 MemberList
里
- 备注 对应
RemarkName
- 昵称 对应
NickName
- 头像 对应
HeadImgUrl
注意 RemarkName
我设置的是中文,这里显示的是乱码。这是Chrome没有使用UTF8编码导致的。
在请求上右键 Open in new tab
,在新的标签页上 ctrl+s
将请求返回结果保存到文件 wx-contacts.json
,我用vscode打开,信息都正常显示了。
下面这段NodeJS程序用来解析JSON、下载头像图片、并以备注名作为图片的文件名。
var https = require('https');
var fs = require(