php抓取网页指定内容(tp3请求接口获取code拉起授权的流程及流程)

优采云 发布时间: 2022-01-05 05:08

  php抓取网页指定内容(tp3请求接口获取code拉起授权的流程及流程)

  一、准备工具

  服务账号(订阅账号无法获取网页授权用户信息)、域名、服务器

  二、配置公众号

  1、获取开发者ID和开发者密码:

  

  

  2、设置网页的授权域名:

  业务域名和js接口安全域名,不需要配置,只需要配置网页的授权域名即可!

  

  

  3、配置证书,将下载的证书放在域名根目录下。

  

  如果浏览器可以访问文件,则配置成功:

  

  

  三、代码实现

  博主使用tp3框架

  流程一:访问该方法,拉起web授权界面,如果同意则带上参数跳转到回调地址

  myurl是我随意设置的回调地址,这个地址不需要在公众号指定! ! !

   public function webpage_authorization()

{

$appid="微信公众号上获取"; //AppID

$key="微信公众号上获取"; //AppSecret

$myurl=urlencode("http://baidu.com/index/redirect_url"); //回调域名

$wxurl='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myurl.'&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect';

header('Location:'.$wxurl);

}

  

  流程二:从回调地址获取code,获取code后请求接口获取access_token和openid,获取openid后请求接口获取用户信息:

   public function redirect_url(){

$appid="微信公众号上获取"; //AppID

$key="微信公众号上获取"; //AppSecret

$code = $_GET['code'];

if ($code) {

$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$key&code=$code&grant_type=authorization_code";

$s = file_get_contents($url);

$s = json_decode($s, true);

}

$access_token = $s["access_token"];

$openid = $s['openid'];

//第二步:根据全局access_token和openid查询用户信息

$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";

$userinfo = $this->http_curl($get_user_info_url); // 获取用户信息

print_r($user_info);

}

public function http_curl($url){

//用curl传参

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

//关闭ssl验证

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch,CURLOPT_HEADER, 0);

$output = curl_exec($ch);

curl_close($ch);

return json_decode($output, true);

}

  最后打印的用户信息:

  

  四、矿坑总结:一号坑:

  请求第一个接口获取启动授权码时报错:redirect_uri域名与后台配置不一致,错误码为10003!但是公众号配置没问题,所以在第一步请求接口获取code时,在回调地址参数中添加urlencode(回调地址)!

  

  坑二:

  在公众号设置中,只需要配置网页的授权域名,配置的域名不需要添加http!并且回调地址是自己在代码中设置的,无需在公众号中配置! ! !

  

  

  坑三:

  

  如果只是单纯在h5网页上获取授权用户的信息,不需要启动服务器配置! ! !

  

  五、微信开发文档

  链接:.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线