当前位置: 首页 > 编程笔记 >

微信接入之获取用户头像的方法步骤

符俊材
2023-03-14
本文向大家介绍微信接入之获取用户头像的方法步骤,包括了微信接入之获取用户头像的方法步骤的使用技巧和注意事项,需要的朋友参考一下

前段时间写了关于微信支付接入,顺便就把获取用户昵称,头像的方式也归纳下,这个其实挺简单的,具体的方法看官方文档即可。这里只提几个重点。

scope参数

看过微信文档的话,微信的规定是,对于scope参数,如果需要获取用户信息的话,scope参数为snsapi_userinfo。但是我接下来,使用过一次userinfo,实际上用snsapi_base也可以获得用户信息,一模一样的返回值,对于获取头像和昵称完全没有任何问题

获取头像

获取头像其实有一点麻烦的就是跨域问题。要解决这个跨域问题,可以采用设置一个代理服务器,或者通过配置相关服务器(ngix,apache)来解决。这个网上方法很多,我这里说的是不通过配置服务器的方法。

在我们的项目中,我并不想使用配置一个web服务器或者代理,因为我们是游戏服务器,我们是自己实现的,并没有使用什么web服务器框架,那么这种情况下,我们解决跨域的问题就是由我们的服务器后端直接对跨域资源发起请求,在获得对应的资源后,再返回前端。OK,这就是具体方法

具体实现时,其实很简单,获取到头像的url后,直接发起一个http请求并获取返回即可。

注意:http请求方式为“GET”

另外需要提的一点是,对response的返回,要直接使用stream.Read,如果使用streamReader,以文本方式读取字节流读出来的数据是无法转成图片的。(我查阅过MSDN关于这两个接口的说明,只是读取时一个是文本形式,一个是字节流形式,其他并没有过多的说有什么区别)。

然后记得将字节流以Base64方式转换,交由我们的前端处理

request = HttpWebRequest.Create(url);
request.Method = "GET";
response = request.GetResponse();
stream = response.GetResponseStream();
var buffer = new byte[4096];
var num = stream.Read(buffer, 0, 4096);
var head = Convert.ToBase64String(buffer, 0, num);

stream.Dispose();
response.Close();

上面的代码有一个问题,我后来才注意到,就是当图片比较大的时候,比如头像地址最后的参数是64以上,或是/0(此时返回640*640大小的图片),这个时候,stream可能一次不能读取完所有的数据,所以修改代码为

var request = HttpWebRequest.Create(url);
request.Method = "GET";
var response = request.GetResponse();
var stream = response.GetResponseStream();
var buffer = new byte[response.ContentLength];
var num = stream.Read(buffer, 0, (int)response.ContentLength);
var total = num;
while(num > 0)
{
  num = stream.Read(buffer, total, (int)(response.ContentLength - total));
  total += num;
}
head = Convert.ToBase64String(buffer, 0, total);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍SpringBoot中获取微信用户信息的方法,包括了SpringBoot中获取微信用户信息的方法的使用技巧和注意事项,需要的朋友参考一下 前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息。获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息。 需要声明一点的是获取微信公众号下的用户信息的权限是服

  • 本文向大家介绍WordPress中利用AJAX异步获取评论用户头像的方法,包括了WordPress中利用AJAX异步获取评论用户头像的方法的使用技巧和注意事项,需要的朋友参考一下 在评论者输入邮箱后,异步获得评论者的头像并显示出来,个人感觉这个功能虽不能给用户体验带来多大的提升,也不算是一个实用的功能,但至少很炫,看到有的网站有添加这个功能,我也不甘寂寞所以也写了个脚本,没有时间做封装,所以直接上

  • 本文向大家介绍微信小程序如何获取用户头像和昵称,包括了微信小程序如何获取用户头像和昵称的使用技巧和注意事项,需要的朋友参考一下 本文介绍了微信小程序如何获取用户头像和昵称,分享给大家,具体如下: 代码user.wxml: user.js 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍微信公众平台获取access_token的方法步骤,包括了微信公众平台获取access_token的方法步骤的使用技巧和注意事项,需要的朋友参考一下 前言:access_token是微信公众平台接口的重要参数,很多接口都需要这个参数。 微信公众平台文档地址:微信公众平台技术文档 一、access_token说明 access_token是公众号的全局唯一接口调用凭据,公众号调用各接口

  • cmf_get_user_avatar_url($avatar) 功能 获取用户头像地址 参数 $avatar: string 用户头像文件路径,相对于 upload 目录 返回 string 用户头像地址

  • 本文向大家介绍java获取微信accessToken的方法,包括了java获取微信accessToken的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java如何获取微信accessToken,供大家参考,具体内容如下 GET请求 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。