利用PHP调用BizMail OpenApi进行接口开发
- 发布
- 修订
- 未修订
- 字数
- 1179
- 阅读
- 3 分钟
以下引自《腾讯企业邮箱OpenApi协议v1.4》
plaintext
腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类。其中,面向
企业邮用户的开放协议, 将提供给企业邮用户丰富的应用接口, 用户可以根据这些接口定制
自己统一的企业解决方案。
通过协议接口,企业用户可以实现:
1) 单点登录
可以从公司 OA 系统、网站一键进入企业邮箱,免去登录过程。
2) 新邮件提醒
新邮件将即时在 OA 等办公系统提醒你。
3) 数据同步
数据同步可以帮助你同步部门成员信息, 你还可以创建、 删除、 修改帐号, 同步部门信息等。我一直想用PHP来实现这些功能的调用,把腾讯官方提供的这份简单的文档研究了下,终于弄出来了。做个笔记,如下:
在使用OpenApi接口之前,要先准备好开通腾讯企业邮箱的管理员ID,接口Key(这个可以去企业邮箱管理后台获取)和需要调用信息的邮箱名,然后就可以进行相关调用了,PHP代码如下:
php
// 首先获取AccessToken
// 企业邮箱的管理员ID
$cTMailID = 'mymailid';
// 在管理后台获取的接口Key
$cTMailSecret = 'a1234567890b1234567890c123456789';
// 需要调用信息的邮箱名
$cTMailAlias = 'mailalias';
// 获取Token的地址
$cTMailGetAccessTokenURL = 'https://exmail.qq.com/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'];
// 打印获取的AccessToken
echo $cTMailAccessToken . '';
// 获取auth_key
$cTMailGetAuthKeyURL = 'http://openapi.exmail.qq.com: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 = 'https://exmail.qq.com/cgi-bin/login?fun=bizopenssologin&method=bizauth&agent=' . $cTMailID . '&user=' . $cTMailAlias . '&ticket=' . $cTMailAuthKey;
echo '一键登录';
// 获取用户信息
$cTMailPostURL = 'http://openapi.exmail.qq.com: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.exmail.qq.com: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.exmail.qq.com: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.exmail.qq.com: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.exmail.qq.com: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);以下是完整的调用地址:
plaintext
OAuth 验证授权 https://exmail.qq.com/cgi-bin/token
获取 Authkey http://openapi.exmail.qq.com:12211/openapi/mail/authkey
一键登录 https://exmail.qq.com/cgi-bin/login?fun=bizopenssologin&method=bizauth&agent=[agent]&user=[email]&ticket=[ticket]
客户端维持长连接 http://openapi.exmail.qq.com:12211/openapi/listen
获取成员资料 http://openapi.exmail.qq.com:12211/openapi/user/get
同步成员帐号资料 http://openapi.exmail.qq.com:12211/openapi/user/sync
获取某个版本号后的用户更新列表 http://openapi.exmail.qq.com:12211/openapi/user/list
获取未读邮件数 http://openapi.exmail.qq.com:12211/openapi/mail/newcount
同步部门 http://openapi.exmail.qq.com:12211/openapi/user/list
获取子部门列表 http://openapi.exmail.qq.com:12211/openapi/party/list
获取部门下成员列表 http://openapi.exmail.qq.com:12211/openapi/partyuser/list
检查邮件帐号是否可用 http://openapi.exmail.qq.com:12211/openapi/user/check
添加邮件群组 http://openapi.exmail.qq.com:12211/openapi/group/add
删除邮件群组 http://openapi.exmail.qq.com:12211/openapi/group/delete
添加邮件群组成员 http://openapi.exmail.qq.com:12211/openapi/group/addmember
删除邮件群组成员 http://openapi.exmail.qq.com:12211/openapi/group/deletemember
评论
正在载入评论…