欢迎您来到,李雷博客 | PHP博客        登录  |  注册

钉钉API接口-用PHP+Curl实现获取用户信息

更新:2023-11-14 10:32:40
人气:365
来源:本站原创
A+

钉钉API接口获取用户的user_ID、unionid、手机号、姓名、头像图片地址等信息。

首先说明,access_token的获取请参考李雷博客中之前分享的博文有示例代码,而其中的user_ID是在钉钉的OA后台-通讯录-用户管理中直接查看到的,不用单独接口获取。(UserID唯一)

接下来往下看,钉钉API获取数据,我用PHP的方法实现,就是采用Curl+POST或GET方式传递数据再接收返回的JSON数据做解析,钉钉API的其他功能也可用如下代码,改一下地址和参数即可。

核心PHP代码函数:

//接口函数-Curl-POST-GET请求方式
	function HttpPost($url,$postget,$data,$header,$access_token){
		$curl = curl_init(); // 启动一个CURL会话
		$data=json_encode($data);
		curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
		curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0");
		curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
		if ($postget=='post'){
			curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
			curl_setopt($curl, CURLOPT_POSTFIELDS, $data ); // Post提交的数据包    http_build_query($data) 
		}else{
			curl_setopt($curl, CURLOPT_POST, false); // 发送一个常规的Post请求
		}
		curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
		curl_setopt($curl, CURLOPT_HEADER, false); // 显示返回的Header区域内容
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
		
		$result = curl_exec($curl); // 执行操作
		if (curl_errno($curl)) {
			return 'Error POST'.curl_error($curl);
		}
		curl_close($curl); // 关键CURL会话
		return $result; // 返回数据
	}
	
	//接口函数-获取用户信息
	function get_user_info($userid,$access_token){
		$post_url="https://oapi.dingtalk.com/topapi/v2/user/get?access_token=".$access_token;
		$post_data = array(
			"userid" => $userid,
			"language" => "zh_CN"
		);
		$header=array('Content-Type:application/json');//header头信息
		$response=HttpPost($post_url,'post',$post_data,$header,$access_token);
		$date_response = json_decode($response,true);//钉钉返回的结果,true数组形式
		return $date_response;
	}

钉钉接口用PHP调用输出用户信息:

	$userid='xxxxxxxx';//用户的user_ID,这个是通过钉钉OA后台查询的
	$user_info_all=get_user_info($userid,$access_token);
	$dingding_name=iconv('utf-8','gbk',$user_info_all["result"]["name"]);//钉钉的姓名(中文转码)
	$dingding_mobile=$user_info_all["result"]["mobile"];//钉钉的手机号
	$dingding_img=$user_info_all["result"]["avatar"];//钉钉的头像
	$dingding_unionid=$user_info_all["result"]["unionid"];//钉钉的unionid 员工在当前开发者企业账号范围内的唯一标识

	echo "姓名:".$dingding_name."<br />";
	echo "手机:".$dingding_mobile."<br />";
	echo "unionid:".$dingding_unionid."<br />";
	echo "头像:".$dingding_img."<br />";

网上的代码都很片面不完整,今天整理了一套,对curl使用不熟、对钉钉API接口无从下手的兄弟么可以参考一下,以上的代码可以复用,参考这个就可以实现其他的钉钉API接口来获取数据了。

推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  Ads by Google
  联系博主
Hello,本博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架!
QQ:858353007   微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2024 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号-4