利用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 = '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);
原文参考:http://www.barhe.org/archives/561
官方手册:http://cdn.markdream.com/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
利用PHP调用BizMail OpenApi(腾讯企业邮箱)进行接口开发相关推荐
- 腾讯企业邮箱OpenApi调用说明
笔者最近在调用腾讯企业邮箱的接口,但因为项目使用的是2016年的老接口,不是新接口(https://exmail.qq.com/qy_mng_logic/doc#10001) 因此找到了之前的老接口文 ...
- 腾讯企业邮箱接口说明文档
http://download.csdn.net/my/uploads/1 1. 开放协议简介 腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类.其中,面向企业邮用户的开放协议,将提供 ...
- python获取未读邮箱数目_利用腾讯企业邮箱开放API获取账户未读邮件数初探
1 /// 2 ///POST时用到的几个数据3 /// 4 public structPostData5 {6 /// 7 ///目标服务器地址8 /// 9 public stringurl;10 ...
- 腾讯企业邮箱OpenApi
一.发送http请求的工具类 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; ...
- 利用python 脚本实现腾讯企业邮箱附件的批量下载
因为有需求,所以自己就稍微琢磨了一下这个东西,然后代码是从网上找的,目前我已经自测过是可以使用的,而且非常方便省事,这里分享给大家! 直接上代码: # _*_ coding: utf-8 _*_ im ...
- 使用腾讯企业邮箱调用SpringMail或者JavaMail发送邮件的发送服务器设置
本来计划不到一天完成的邮件发送任务,因为要使用公司的腾讯企业邮箱而折腾了一天半,最后终于在网上看到了这个帖子,腾讯企业邮箱给出的 企业邮箱提示是错误的: 接收服务器: pop.exmail.qq.co ...
- 腾讯企业邮箱API实现单点登录和获取企业未读邮件
应公司要求在ERP平台的OA系统上显示企业邮箱的未读邮件数量,并且实现单点登录.也就是点击数字可以直接进入腾讯企业邮箱不用登录.既然用到这个API肯定大家也都有腾讯企业邮箱OpenApi协议v1.4文 ...
- python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...
之前的 帖子 加入了 @ sdc1992 提供的登录部分 根据邮箱和密码,获取企业通讯录 运行后会生成两个文件 一个只包含邮箱,可以用于后续爆破 一个为部门名称 和 部门下的员工邮箱的树形结构,可以方 ...
- 腾讯企业邮箱api java_腾讯企业邮箱API实现同步成员资料
同步成员资料相当于腾讯企业邮箱中对成员的增删改操作.文档里面各种不完善的参数传递走了很多弯路也算是初步成功了 直接贴代码: private void AddPersonEnterpriseMailbo ...
最新文章
- 音乐与现代计算机技术,计算机技术在音乐教学中应用与研究.doc
- 系统服务器巡查表,服务器操作系统巡检表
- vim代码格式化自动加空格_vim格式化代码实际上就是 缩进代码, 命令是等号=
- 支持与不支持in-place操作的OpenCV函数汇总
- 【抽奖】若川诚邀你加前端群,长期交流学习~
- Hadoop开发工具简介
- linux桌面lxde 安装_观点|最新精简型 Linux 桌面环境大比拼:LXDE Vs. Xfce Vs. MATE
- 2022数据库排行榜新鲜出炉!MySQL大势已去,PostgreSQL即将崛起!
- 模糊综合评价模型原理及matlab实现
- [ CSOL - CLS ] 活动网站 map area
- Linux 程序编译过程详解
- Vue todos代办事项功能
- 后台管理系统模板,简易模板
- matlab安装后不能打开怎么办,matlab7.0安装后打不开_matlab7.0安装后不能用
- Android应用上架国内各大应用市场对应用Logo、应用截图要求整理
- 群友问题,如何面对繁杂的数据需求?
- 微软文本转语音小工具(Text to speech)网页版
- 离散数学:关系的性质
- 开发高并发系统的三把利器
- springmvc考研交流平台 java ssm mysql