>백엔드 개발 >PHP 튜토리얼 >PHP 사용자 관리에서 일반적으로 사용되는 인터페이스에서 호출되는 메서드

PHP 사용자 관리에서 일반적으로 사용되는 인터페이스에서 호출되는 메서드

墨辰丷
墨辰丷원래의
2018-05-25 09:37:232128검색

이 글은 주로 PHP 사용자 관리에 있어서 일반적인 인터페이스 호출 방법을 소개합니다. 관심 있는 친구들이 참고하면 좋겠습니다.

사용자를 마스터하기 위한 첫 번째 단계는 팔로우한 팬의 정보를 저장하는 것입니다. 이때 사용자 목록 인터페이스를 사용하게 됩니다. 공개 계정은 이 인터페이스를 통해 계정의 팔로어 목록을 얻을 수 있습니다. 팔로어 목록은 OpenID 문자열로 구성됩니다(암호화된 WeChat ID, 각 공개 계정에 대한 각 사용자의 OpenID는 고유함). 단일 풀 호출로 최대 10,000명의 팔로어 OpenID를 가져올 수 있으며, 필요에 따라 여러 번 가져올 수 있습니다.

1. 다음 사용자 목록 인터페이스 호출 예시

인터페이스 설명

http 요청 방법: GET

인터페이스 호출 주소:

https://api.weixin.qq.com/cgi-bin/user /get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

표에 표시된 대로 요청 매개변수 설명:


매개변수

가 필요합니까?

Description

access_token

호출 인터페이스 자격 증명

next_openid

가져올 첫 번째 OPENID입니다. 채워지지 않으면 가져옵니다. 기본적으로 처음부터

반환 지침:

일반적인 상황에서 WeChat은 아래와 같이 JSON 데이터 패킷을 공식 계정에 반환합니다.

{"total":2,"count":2,"data ":{"openid":["", "OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}

返回信息参数说明,如表所示:

 

参数

说明

total

关注该公众账号的总用户数

count

拉取的OPENID个数,最大值为10000

data

列表数据,OPENID的列表

next_openid

拉取列表的最后一个用户的OPENID

使用程序调用接口获取,代码:

<?php
/*
 *获取微信关注用户列表OpenID
*/
require(&#39;wei_function.php&#39;);
$appid="wx78478e595939c538";
$secret="5540e8ccab4f71dfad752f73cfb85780";
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret."";
$output=getdata($url);
$tokenarr=(array)json_decode($output);
$token=$tokenarr[&#39;access_token&#39;];
//获取关注用户列表接口
$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";
//通过getdata进行接口调用
$userarr=(array)json_decode(getdata($userurl));
//将返回信息进行处理并输出
$useropenidarr=(array)$userarr[&#39;data&#39;];
print_r($useropenidarr);
?>

代码解析

require('wei_function.php');包含wei_function.php,该函数文件可以购买《微信公众平台开发实例教程》,在该书中第95页有详细讲解。 

与微信公众平台开发3-微信服务器IP接口实例(含源码)的获取微信服务器IP一样,获取到access_token后,替换

$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";

표에 표시된 대로 반환 정보 매개변수 설명:

Parameter

Description

total

이 공개 계정을 팔로우하는 총 사용자 수

count

가져오는 최대 OPENID 수는 10000입니다
$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."&next_openid=NEXT_OPENID";
팔로우 사용자 목록 가져오기 인터페이스를 통해 사용자의 OpenID를 얻은 후 이 매개변수를 사용하고 사용자 기본 정보 가져오기(UnionID 메커니즘) 인터페이스를 호출하여 사용자의 OpenID를 가져올 수 있습니다. 닉네임, 도시, 성별, 사용자 아바타, 공개 계정 팔로우 여부 및 기타 정보와 같은 기본 정보는 사용자를 더 잘 이해하기 위해 데이터베이스에 함께 저장되어야 합니다. 인터페이스 설명

data

목록 데이터, OPENID 목록

next_openid

목록에 있는 마지막 사용자의 OPENID를 가져옵니다

프로그램 호출 인터페이스를 사용하여 , 코드:

코드 분석
require('wei_function.php'); wei_function.php가 포함되어 있습니다. 이 함수 파일은 자세히 설명되어 있는 "WeChat 공개 플랫폼 개발 예제 튜토리얼"에서 구입할 수 있습니다. 책 95쪽.

WeChat 서버 IP를 얻기 위한 WeChat 공개 플랫폼 개발 3-WeChat 서버 IP 인터페이스 인스턴스(소스 코드 포함)와 동일합니다. access_token을 얻은 후
$userurl="https://를 교체합니다. api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";

의 access_token 매개변수, getdata() 함수를 통해 반환된 정보를 얻습니다. 처리 후 표시된 그림과 같이 인쇄합니다.

10,000명이 넘는 사용자를 팔로우하고 여러 번 호출해야 하는 경우 인터페이스 뒤에 &next_openid=NEXT_OPENID 매개변수를 추가하면 NEXT_OPENID가 이전 호출에서 이 값을 반환합니다. 예:

{
  "subscribe": 1,
  "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
  "nickname": "Band",
  "sex": 1,
  "language": "zh_CN",
  "city": "广州",
  "province": "广东",
  "country": "中国",
  "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4
eMsv84eavHiaiceqxibJxCfHe/0",
 "subscribe_time": 1382694957,
 "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
 "remark": "",
 "groupid": 0,
 "tagid_list":[128,2]
}

이, 사용자 기본 정보 인터페이스(UnionID 메커니즘) 호출 예제

🎜http 요청 방법: GET🎜🎜인터페이스 호출 주소:🎜🎜https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN🎜🎜요청 매개변수 표에 표시된 설명: 🎜🎜🎜🎜🎜🎜🎜🎜🎜매개변수 🎜🎜🎜🎜가 필수인가요? 🎜is🎜🎜🎜🎜 호출 인터페이스 자격 증명🎜🎜🎜 🎜🎜🎜openid 🎜🎜🎜🎜은(는) 다음의 식별자입니다. 현재 공개 계정에 고유한 일반 사용자 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜lang🎜🎜🎜🎜No🎜🎜🎜🎜국가 및 지역 언어 버전으로 돌아가기, zh_CN 중국어 간체, zh_TW 중국어 번체, en 영어🎜 🎜🎜🎜🎜

返回说明:

正常情况下,微信会返回JSON数据包给公众号,如下所示:

{
  "subscribe": 1,
  "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
  "nickname": "Band",
  "sex": 1,
  "language": "zh_CN",
  "city": "广州",
  "province": "广东",
  "country": "中国",
  "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4
eMsv84eavHiaiceqxibJxCfHe/0",
 "subscribe_time": 1382694957,
 "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
 "remark": "",
 "groupid": 0,
 "tagid_list":[128,2]
}

返回信息参数说明,如表所示:


参数

说明

subscribe

用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。

openid

用户的标识,对当前公众号唯一

nickname

用户的昵称

sex

用户的性别,值为1时是男性,值为2时是女性,值为0时是未知

city

用户所在城市

country

用户所在国家

province

用户所在省份

language

用户的语言,简体中文为zh_CN

headimgurl

用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。

subscribe_time

用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间

unionid

只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

remark

公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注

groupid

用户所在的分组ID(兼容旧的用户分组接口)

tagid_list

用户被打上的标签ID列表

使用程序调用接口获取,代码:

<?php
/*
 *获取微信关注用户基本信息
*/
require(&#39;wei_function.php&#39;);
$appid="wx78478e595939c538";
$secret="5540e8ccab4f71dfad752f73cfb85780";
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret."";
$output=getdata($url);
$tokenarr=(array)json_decode($output);
$token=$tokenarr[&#39;access_token&#39;];
//获取关注用户列表接口
$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";
//通过getdata进行接口调用
$userarr=(array)json_decode(getdata($userurl));
//将返回信息进行处理并输出
$useropenidarr=(array)$userarr[&#39;data&#39;];
foreach ($useropenidarr[&#39;openid&#39;] as $value) {
  //循环获取用户基本信息
  $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN";
  $infoarr=(array)json_decode(getdata($infourl));
  print_r($infoarr);
  echo "<br />";
}
?>

代码解析

require('wei_function.php');包含wei_function.php,该函数文件可以购买《微信公众平台开发实例教程》,在该书中第95页有详细讲解。

获取到用户OpenID列表后,根据每条OpenID获取用户基本信息,这里用到foreach循环

foreach ($useropenidarr[&#39;openid&#39;] as $value) {
    //循环获取用户基本信息
   $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN";
    $infoarr=(array)json_decode(getdata($infourl));
    print_r($infoarr);
    echo "<br />";
}

运行结果如图所示。

如果需要将用户信息保存到数据库,只需替换print_r($infoarr);为增加数据库的代码即可,如:

foreach ($useropenidarr[&#39;openid&#39;] as $value) {
  //循环获取用户基本信息
  $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN";
  $infoarr=(array)json_decode(getdata($infourl));
  //将用户信息增加到数据库
   $sql=”insert into userinfo(`nickname`,`sex`,`city`) values
   (‘”.$infoarr[‘nickname&#39;].”&#39;,&#39;”.$infoarr[&#39;sex&#39;].”&#39;,&#39;”.$infoarr[&#39;city&#39;].”&#39;)”;
  mysql_query($sql);
}

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

PHP基于接口技术实现多态应用的方法

PHP接口多继承和tarits实现多继承效果的方法教程详情

php实现app接口并返回json数据的方法

위 내용은 PHP 사용자 관리에서 일반적으로 사용되는 인터페이스에서 호출되는 메서드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.