700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 利用PHP调用BizMail OpenApi(腾讯企业邮箱)进行接口开发

利用PHP调用BizMail OpenApi(腾讯企业邮箱)进行接口开发

时间:2023-11-25 19:33:54

相关推荐

利用PHP调用BizMail OpenApi(腾讯企业邮箱)进行接口开发

以下引自《腾讯企业邮箱OpenApi协议v1.0》

腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类。其中,面向企业邮用户的开放协议, 将提供给企业邮用户丰富的应用接口, 用户可以根据这些接口定制自己统一的企业解决方案。通过协议接口,企业用户可以实现:1) 单点登录可以从公司 OA 系统、网站一键进入企业邮箱,免去登录过程。2) 新邮件提醒新邮件将即时在 OA 等办公系统提醒你。3) 数据同步数据同步可以帮助你同步部门成员信息, 你还可以创建、 删除、 修改帐号, 同步部门信息等。

我一直想用PHP来实现这些功能的调用,把腾讯官方提供的这份简单的文档研究了下,终于弄出来了。做个笔记,如下:

在使用OpenApi接口之前,要先准备好开通腾讯企业邮箱的管理员ID,接口Key(这个可以去企业邮箱管理后台获取)和需要调用信息的邮箱名,然后就可以进行相关调用了,PHP代码如下:

// 首先获取AccessToken// 企业邮箱的管理员ID$cTMailID = 'mymailid';// 在管理后台获取的接口Key$cTMailSecret = 'a1234567890b1234567890c123456789';// 需要调用信息的邮箱名$cTMailAlias = 'mailalias';// 获取Token的地址$cTMailGetAccessTokenURL = '/cgi-bin/token';$cTMailContentData = 'grant_type=client_credentials&client_id=' . $cTMailID . '&client_secret=' . $cTMailSecret;// 获取access_token// 不要问我为什么这么写,早就忘记了!-_-$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailGetAccessTokenURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);$cTMailAccessToken = $json_obj['access_token'];// 打印获取的AccessTokenecho $cTMailAccessToken . '';// 获取auth_key$cTMailGetAuthKeyURL = 'http://openapi.:12211/openapi/mail/authkey';$cTMailContentData = 'access_token=' . $cTMailAccessToken . '&alias=' . $cTMailAlias;$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailGetAuthKeyURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);$cTMailAuthKey = $json_obj['auth_key'];// 一键登录$cURL = '/cgi-bin/login?fun=bizopenssologin&method=bizauth&agent=' . $cTMailID . '&user=' . $cTMailAlias . '&ticket=' . $cTMailAuthKey;echo '一键登录';// 获取用户信息$cTMailPostURL = 'http://openapi.:12211/openapi/user/get';$cTMailContentData = 'access_token=' . $cTMailAccessToken . '&alias=' . $cTMailAlias;$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailPostURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 75);$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);print_r($json_obj);echo '';echo 'Email地址:' . $json_obj['Alias'] . '';echo '姓名:' . $json_obj['Name'] . '';echo '性别:' . $json_obj['Gender'] . '';echo '职位:' . $json_obj['Position'] . '';echo '电话:' . $json_obj['Tel'] . '';echo '手机号码:' . $json_obj['Mobile'] . '';echo '员工编号:' . $json_obj['ExtId'] . '';// 获取用户未读邮件数量$cTMailPostURL = 'http://openapi.:12211/openapi/mail/newcount';$cTMailContentData = 'access_token=' . $cTMailAccessToken . '&alias=' . $cTMailAlias;$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailPostURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 75);$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);// 打印获取的信息print_r($json_obj);// 客户端维持长连接$cTMailPostURL = 'http://openapi.:12211/openapi/listen';$cTMailContentData = 'access_token=' . $cTMailAccessToken . '&alias=' . $cTMailAlias;$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailPostURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 75);$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);print_r($json_obj);// 获取子部门列表$cTMailPostURL = 'http://openapi.:12211/openapi/party/list';$cTMailContentData = 'access_token=' . $cTMailAccessToken . '&partypath=';$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailPostURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);echo '获取的子部门列表:';print_r($json_obj);// 获取部门下成员列表$cTMailPostURL = 'http://openapi.:12211/openapi/partyuser/list';$cTMailContentData = 'access_token=' . $cTMailAccessToken . '&partypath=XX公司/财务部';$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$cTMailPostURL);curl_setopt($ch,CURLOPT_POSTFIELDS,$cTMailContentData);curl_setopt($ch,CURLOPT_ENCODING,'UTF-8');curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1 );$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);echo '获取的子部门成员列表:';print_r($json_obj);

原文参考:/archives/561

官方手册:/ref/mat/%E8%85%BE%E8%AE%AF%E4%BC%81%E4%B8%9A%E9%82%AE%E7%AE%B1OpenApi%E5%8D%8F%E8%AE%AEv1.0.pdf

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。