获取微信用户信息后如何把微信头像保存到本地服务器
默认微信头像是一个URL地址,保存在微信的服务器上,如果授权登录后换了头像获取的头像地址就会失效,图片显示不出来体验就会比较差。解决办法就是在登录的时候把微信头像保存到本地服务器,这样就不存在这样的情况,用户发现头像没更新可以手动点击更新或者程序自动判断更新。
下面是PHP中如果把用户的微信头像保存到本地服务器,形成永久的头像。
function download_remote_pic($url) {$header = ['User-Agent: Mozilla/5.0 (Windows NT 6.1;Win64;x64;rv:45.0) Gecko/20100101 Firefox/45.0','Accept-Language: zh-CN, zh;q = 0.8, en-US;q = 0.5, en;q = 0.3','Accept-Encoding: gzip, deflate',];$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);curl_setopt($curl, CURLOPT_ENCODING, 'gzip');curl_setopt($curl, CURLOPT_HTTPHEADER, $header);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在$data = curl_exec($curl);$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);curl_close($curl);if ($code == 200) {//把URL格式的图片转成base64_encode格式的! $imgBase64Code = "data:image/jpeg;base64," . base64_encode($data);}$img_content = $imgBase64Code; //图片内容 //echo $img_content;exit; if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)) {var_dump($result);$type = $result[2]; //得到图片类型png?jpg?gif? $new_file = "./openid" . ".{$type}";if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $img_content)))) {return $new_file;}}}$new_file = download_remote_pic('https://wx.qlogo.cn/mmopen/vi_32/20JUJpvD2IO8TyKTuLTu8o2IXlXobcA8OLxsZ2OBTLAEG9rrMXGicJnCicqdz6vSP2sYpMrFHsZ9FnUCAev3taAA/132');echo $new_file;
保存到本地的图片用OPENID命名防止冲突,调用的时候只要有用户的OPENID就可以随时调用。
获取微信用户信息后如何把微信头像保存到本地服务器相关推荐
- 获取微信用户信息java开发_Java微信公众平台开发(十二)--微信用户信息的获取
前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...
- 微信小程序同一个登录按钮上触发获取微信用户信息和电话号码
微信小程序同一个登录按钮上触发获取微信用户信息和电话号码 因为微信小程序获取用户信息getuserinfo方法和获取电话号码open-type="getPhoneNumber" @ ...
- JAVA 获取微信用户信息,看完这篇你必须得学会
很多IT搬砖员,磕磕碰碰,都比较生怕遇到自己未接触过的东西,但是作为开发,迟早有一天,某个领导跟你说,某个需求,需要接入微信公众号,需要获取微信用户信息. 虽然说微信提供了相关的文档,但是免不了还是很 ...
- Spring MVC 实战:三种方式获取登录用户信息
前言 Web 项目中,维持用户登录状态的常用方式有三种,分别是 Cookie.Session.Token,不管哪种方案,都需要获取到用户信息供业务层使用. 由于获取用户信息与具体业务无关,因此在普通的 ...
- SAP系统和微信集成的系列教程之六:如何通过OAuth2获取微信用户信息并显示在SAP UI5应用中
这是Jerry 2020年的第87篇文章,也是汪子熙公众号总共第269篇原创文章. 本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发 ...
- SpringBoot中获取微信用户信息竟然这么简单!
前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...
- 实现微信打开网页时,获取当前微信用户信息(Java)(基于snsapi_userinfo方式)
/*** 1 第一步:用户同意授权,获取code* 2 第二步:通过code换取网页授权access_token* 3 第三步:刷新access_token(如果需要)* 4 第四步:拉取用户信息(需 ...
- Spring学习笔记(二十三)——实现网站微信扫码登录获取微信用户信息Demo
目录 微信扫码登录介绍 开发步骤 微信扫码登录示例 微信开放文档 遇到的问题 使用第三方工具实现网站微信扫码登录 开发前介绍 开发步骤 微信扫码登录获取微信用户信息Demo实现流程 实现效果 实现过程 ...
- 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ
微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...
最新文章
- OpenBLAS简介及在Windows7 VS2013上源码的编译过程
- “cmake 点点”表示在上一级目录(CMakeLists.txt所在目录)编译
- shell 字符串操作(长度,查找,替换)详解
- 跨链Cosmos(3)IBC协议二
- 1249. 移除无效的括号
- C socket demo
- 快速获得数据库连接字符串的小窍门
- System.load(String filename)和System.loadLibrary(String libname)的区别
- 10.15 iptables filter表小案例;10.16—10.18 iptables nat
- 举例在项目中动态构建自己的程序集,.NET产生动态程序集!
- 安卓内存监控悬浮窗,6年菜鸟开发面试字节跳动安卓研发岗,面试建议
- 将计算机屏幕,iPad化身显示器!一款能让平板变电脑屏幕的神器
- 计算机一打开就卡在更新失败,Win10更新系统卡住不动怎么办 Win10系统更新卡住不动解决方法...
- GBase 8c 数据库产品简介
- live2d 3行代码 为网站添加萌萌哒看板娘
- 蓝桥杯基础之16进制、10进制、8进制、2进制换算总结
- DB2001 深入了解DB2 reorg
- spark count统计元素个数
- Android获取设备支持的编解码器
- 慕课网跟练系列——定位和边距的区别弹出层的简单实例