微信开发笔记:获取用户openid,以及用户头像昵称等信息

摘要:
在开发微信的时候,有一个非常方便的方法可以一步注册用户,那就是使用用户的微信信息直接登录,这样可以省去很多不必要的麻烦。access_token=$access_token&openid=$openid&lang=zh_CN“;$user_info=https_request;从微信平台获取代码后,我们可以交换access_token和open_id。通过access_toke和open_id,我们最终可以获得所需的用户信息。最后,提醒读者,不要忘记在页面末尾跳回上一页,否则将获得用户信息,用户界面将只有一个白色大屏幕。”n

微信开发的时候有一个很便利的途径来进行一个用户的一步注册登录,就是使用用户的微信信息来直接进行登陆,可以省去很多不必要的麻烦。那具体这些信息是如何来获取的呢?

首先呢,我们需要对微信进行一个授权,让微信页面有权限来读取我们的用户信息:

$redirect_uri = urlencode($url); //设置授权页面,此处填写回调的授权页面地址
$scope = 'snsapi_userinfo'; 
$appid = APPID;

$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope={$scope}&state=1#wechat_redirect";

header('location:'.$url);    

scope表示一个对用户的一个授权方式,这里我们用snsapi_userinfo也就是弹出式的授权,可以在用户没有关注公主号的情况下一样进行用户信息的获取。

appid就是我们公众号的appid。

回调的地址是在跳转完以后,微信平台会把用户端的页面跳转到这个回调的地址上,并且将一个code以get的形式发送过来,具体的处理方式是这样的:

function https_request($url){
    $curl = curl_init();  //初始化一个cURL会话
        
    //设置请求选项, 包括具体的url
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);  //禁用后cURL将终止从服务端进行验证
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl,CURLOPT_HEADER,0); //
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); //
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        
    $response = curl_exec($curl);  
    curl_close($curl);
        
    $jsoninfo = json_decode($response,true); 
    return $jsoninfo;
}    

$code = $_GET["code"];
$token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
$token_info = https_request($token_url);

//根据openid和access_token查询用户信息 
$access_token = $token_info['access_token']; 
$openid = $token_info['openid'];

$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; 
$user_info = https_request($userinfo_url);

我们从微信平台获得了code以后,就可以去交换access_token以及open_id了,有了access_token和open_id就可以最终获得我们需要的用户信息了,最后提醒下读者,不要忘记再页面的最后跳转回之前用户访问的页面哦,否则用户信息是获取到了,而用户界面就只有一个大白屏了。

免责声明:文章转载自《微信开发笔记:获取用户openid,以及用户头像昵称等信息》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 聊天室(一)supervisord 安装、配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WordPress版微信小程序开发系列(一):WordPress REST API

自动我发布开源程序WordPress版微信小程序以来,很多WordPress站长在搭建微信小程序的过程中会碰到各种问题来咨询我,有些问题其实很简单,只要仔细看看我写的文章,就可以自己解决。不过这些文章里无法涵盖所有的技术点,因为涉及Wordpress和微信小程序两套程序系统,有些技术点对于小白用户来说确实有些难度,因此我考虑写一个系列文章介绍WordPre...

OpenStack镜像制作笔记 以windows8.1amd64为例

by hyc 目录 1.下载win8_64位的iso文件 2.下载对应电脑的vnc 3.下载Xshell软件 4.连接成功后,在Xshell下安装软件包 5.下载FileZillaClient软件 6.驱动下载 7.镜像的安装与制作 8.用vnc远程安装系统 9.安装完后进行一些设置 9.1设置MTU 9.2关闭防火墙 9.3开启任何人远程访问 9.4更...

微信 公众号平台 与 开放平台 获取用户信息 scope snsapi_login

微信公众号(公众平台) 和 微信开放平台 是两码事。公众号(公众平台)获取的scope只包括两种:snsapi_base 和snsapi_userinfo,前者是静默获取,用户无感知;后者是需要用户确认同意的。但是微信开放平台(https://open.weixin.qq.com/) 就可以获取snsapi_login这种scope。坑爹的是,公众平台的认...

如何使用华为机器学习服务和Kotlin实现语音合成

1. 引言   你曾遇到过这种情况吗?一本小说太长,要花很长时间阅读,但如果有app能自动为你阅读,就会省时很多。因此,将文本转换成语音的工具应运而生。华为机器学习服务(HUAWEI ML Kit)具备语音合成(Text To Speech, TTS)功能,能让app快速实现从文本到语音的转换。TTS可以将文本转换成人声。这也可以通过默认方法实现,但这些方...

NVIDIA Jetson AGX Xavier 开机、刷机、换源(亲测有效)以及bug列举及其解决方案【转】

网站看了好多的教程,这个是最好用的~ 更换清华镜像源 然后我开始尝试更换系统桌面,首先我做的事情是更换TX2的国内源,这样下载东西速度会快一点。我使用的国内源是清华镜像源,对于Ubuntu16.04系统,源列表如下: deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates m...

为什么国外的 App 很少会有开屏广告?

前言: 笔者在知乎看到这个问题,觉得这的确是一个值得关注和回答的现象,遂写了回答并整理成本文发布在此抛砖引玉,欢迎讨论。 正文: 古话说得好,先问是不是,再问为什么。 对于「国外的 App 很少有开屏广告」这个论断其实未必正确,毕竟商业世界已经发展得很畅通和成熟了,一旦有什么可行的商业模式(比如开屏广告),那必然会被快速地借(chao)鉴(xi)。那为什...