微信订阅号开发笔记(五)

1、用户管理

//查询所有分组
public function queryGroups(){
$url = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token=";
$url.=$this->getacctoken();
$result = $this->cget($url);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//创建分组
public function createGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/create?access_token=";
$url.=$this->getacctoken();
$postData=‘{"group":{"name":"test"}}‘;
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//查询用户所在分组
public function queryGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/getid?access_token=";
$url.=$this->getacctoken();
$postData=‘{"openid":"openId"}‘;
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//修改分组名
public function updateGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/update?access_token=";
$url.=$this->getacctoken();
$postData=‘{"group":{"id":100,"name":"atest"}}‘;
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//移动用户分组
public function moveGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=";
$url.=$this->getacctoken();
$postData=‘{
"openid": "openId",
"to_groupid": 100
}‘;
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//获取用户基本信息
public function queryUserInfo(){
$url = "https://api.weixin.qq.com/cgi-bin/user/info?lang=zh_CN&access_token=";
$url.=$this->getacctoken();
$url.="&openid="."openId";
$result = $this->cget($url);
header("Content-type: text/html; charset=utf-8");
echo json_encode($result);
}
//获取关注者列表
public function queryUserList(){
//https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=";
$url.=$this->getacctoken();
$result = $this->cget($url);
$r = json_encode($result);
$next_openid=$r[‘next_openid‘];
if(!empty($next_openid)){
}
header("Content-type: text/html; charset=utf-8");
echo $r ;
}

2、网页授权获取用户基本信息

具体而言,网页授权流程分为四步:

  1. 引导用户进入授权页面同意授权,获取code
  2. 通过code换取网页授权access_token(与基础支持中的access_token不同)
  3. 如果需要,开发者可以刷新网页授权access_token,避免过期
  4. 通过网页授权access_token和openid获取用户基本信息
public function index(){
//1、引导用户进入授权页面
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=";
$redirect_uri="YOU URL";
$redirect_uri=urlencode($redirect_uri);
$url.=$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=a#wechat_redirect";
$this->assign ( ‘userurl‘, $url );
$this->display();
}
public function success(){
//2、用户授权成功 获取code ,用code换取access_token
$code = I ( ‘get.code‘ );
//echo $code;
$geturl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=";
$geturl.=$code."&grant_type=authorization_code";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$geturl);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
$output = curl_exec($ch);
curl_close($ch);
//echo json_decode($output,true);
$returnObj = json_decode($output,true);
//echo $returnObj[‘access_token‘];
//3、刷新access_token(如果需要)
//4、拉取用户信息(需scope为 snsapi_userinfo)
$geturl ="";
$geturl=" https://api.weixin.qq.com/sns/userinfo?access_token=";
$geturl.=$returnObj[‘access_token‘]."&openid=".$returnObj[‘openid‘]."&lang=zh_CN";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$geturl);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
$output = curl_exec($ch);
curl_close($ch);
//echo json_decode($output,true);
$userObj = json_decode($output,true);
$this->assign ( ‘userObj‘, $userObj );
$this->display();
}

微信订阅号开发笔记(五),布布扣,bubuko.com

时间: 2024-10-13 17:24:59

微信订阅号开发笔记(五)的相关文章

微信订阅号开发笔记(二)

微信开发的流程其实很简单 o(∩_∩)o 哈哈!在微信网站的编辑操作 额,就不说了.虽然有人问过.下面是我的微信开发过程,简单记录下. 成为开发者 材料:1.自己的服务器资源,百度的BAE,新浪的SAE都不错. 2.懂那么点编程语言. 3.注册微信公众号. 上面的都有了之后,就可以自己动手开发了.哇咔咔,好兴奋.有木有. 在登录进去之后,怎么成为开发者?不知道,自己看去. 开始coding吧. 1.验证 if (! empty ( $_GET ['echostr'] ) && ! empt

微信订阅号开发笔记(三)

1.接收语音识别结果 if($msgType=="voice"){ //收到语音消息 //MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据. //Format 语音格式,如amr,speex等 $format = $postObj->Format; $mediaId = $postObj->MediaId; //开通语音识别功能,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段. //注:由于客户端缓

微信订阅号开发笔记(四)

1.创建菜单 //创建菜单 public function createMenu(){ $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="; $url.=$this->getacctoken(); //目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.一级菜单最多4个汉字, //二级菜单最多7个汉字,多出来的部分将会以"..."代替.请注意,创建自定义菜单

C#微信公众号开发 -- (五)自定义菜单创建

公众号中,底部都是有自己定义的功能按钮,通过点击某个按钮来实现指定的业务逻辑操作. 下面就来说说这些按钮是怎样放到微信公众平台的,还是先来看看微信的官方解释: 请注意: 1.自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单. 2.一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替. 3.创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单, 如果菜单有更新,就会刷

微信公众号开发笔记1(nodejs开发的)

本篇记录了微信公众号开发的一些笔记 一.微信服务器与我们服务器的交流 微信开发者拥有自己的服务器,在我们服务器上可以与微信服务器进行交流.既然可以交流,那就必定需要前提条件(微信认证),也就是说,只有自己的服务器与微信服务器进行认证通过后,才能与他交流.如何进行认证? 1. 接口认证 接口的认证是token验证,微信服务器会发送一个get请求给我们在公众号配置的接口,如http://xxxx/weixin/api ,这个请求带了如下参数 然后,微信规定我们 1)将token.timestamp.

微信公众号开发笔记

试了一段时间的微信公众号开发,本文主要以图片和代码的形式,介绍一些公众号开发的内容. 基于微信公众号的第三方开发,主要是需要搞清楚[微信用户],[微信服务器],[第三方服务器]三者之间的数据流程和走向,废话不说,直接上图吧. 1. 第三方URL验证,微信用户关注公众号事件 2. 用户发送消息,点击自定义菜单事件 3. 设置公众号自定义菜单 4. 网页开发授权 暂时先发这4张图,代码后续再发.希望对开发者有所帮助.

微信订阅号开发-1

前天申请了个微信订阅号,准备试试php开发微商场. 今天中午去bae搞了个服务器,然后就开始验证token,到晚上才弄完.别人的服务器用着就是麻烦,更新一下代码就要push到git上,对接口不熟悉真的是太浪费时间了.下面是终于测试成功的token验证代码. 1 class Main 2 { 3 private $sign; //微信加密签名 4 private $time; //时间戳 5 private $nonce; //随机数 6 private $echostr; //随机字符串 7 p

微信服务号开发笔记

原理 微信服务号的原理比较简单.从请求响应角度来看,逻辑是: 用户微信客户端 <—> 微信服务器 <—> 微信服务号后台程序 <—> 数据库或Web Service 也就是,用户的各种请求先经过微信的服务器,微信服务器将请求转发给微信服务号后台程序. 既然是微信服务器把用户请求数据转发给我们开发的微信服务号后台程序,那么在启用服务号的开发模式时就需要提供一个URL.另外为了安全 考虑,还需要提供一个token,用来校验请求是否来自微信服务器.校验的方法见微信开发者文档.

微信公众号开发笔记2(nodejs)

本篇主要记录调用微信各种api和功能实现 一.始于access_token 无论调用微信的什么api,都需要一个查询参数,就是我们每隔1小时或者2小时获取的access_token,笔记1中已经保证了本地存储的access_token与微信服务器端一致,此时,我们就可以使用我们本地的atoken成功调用api了. 我的思路是,写一个函数getAccessToken,该函数接收一个函数参数,也就是回调函数.我们在getAccessToken中获取到我们本地的atoken后执行我们的回调函数逻辑,以