腾讯企业邮箱OpenApi
一、发送http请求的工具类
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
/**
* 发送http请求工具类(get)
* @author chenfanglin
* @date 2015年9月24日 下午2:47:23
*/
public class HttpRequestClient {
/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @param authorization 包含 access_token 或者 加密的(client_id:client_secret)
* @return URL 所代表远程资源的响应结果
*/
public static String sendGet(String url,String param,String authorization) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("Authorization", authorization);
// 建立实际的连接
connection.connect();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + url+"->"+param+"->"+authorization);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
}
二、获取企业邮箱信息的工具类
import sun.misc.BASE64Encoder;
import com.dataeye.common.CachedObjects;
/**
* 获取腾讯企业邮箱信息
*
* @author chenfanglin
* @date 2015年9月24日 下午2:57:38
*/
public class TencentEmailUtil {
// 公司管理员账号
public static final String CLIENT_ID = "xxxx";
// key
public static final String CLIENT_SECRET = "xxxx";
// Basic
public static final String BASIC = "Basic";
// Bearer
public static final String BEARER = "Bearer";
// grant_type
public static final String GRANT_TYPE = "grant_type=client_credentials";
/**
* 将client_id 和client_secret 以BASE64 加密方式加密,即base64(client_id: client_secret),
* @return
* @author chenfanglin <br>
* @date 2015年9月24日 下午3:27:11
*/
public static String encodeEmail(){
BASE64Encoder encoder = new BASE64Encoder();
// 加密后的字符串
String encrypted = encoder.encode((CLIENT_ID+":"+CLIENT_SECRET).getBytes());
return BASIC + " " + encrypted;
}
/**
* 根据 邮箱账号获取成员信息
* @param email
* @return
* @author chenfanglin <br>
* @date 2015年9月24日 下午3:47:56
*/
public static UserInfo getUserInfoByEmail(String email) {
String token = getAccessToken().getAccess_token();
String respon=HttpRequestClient.sendGet("http://openapi.exmail.qq.com:12211/openapi/user/get",
"Alias="+email, BEARER+" "+token);
UserInfo userInfo = CachedObjects.GSON.fromJson(respon, UserInfo.class);
return userInfo;
}
/**
* OAuth验证授权,获取 access_Token
* @return
* @author chenfanglin <br>
* @date 2015年9月24日 下午3:22:43
*/
public static AccessToken getAccessToken(){
String authorization = encodeEmail();
String respon = HttpRequestClient.sendGet("https://exmail.qq.com/cgi-bin/token", GRANT_TYPE, authorization);
AccessToken accessToken = CachedObjects.GSON.fromJson(respon, AccessToken.class);
return accessToken;
}
/**
* 获取所有的公司邮箱
* @return
* @author chenfanglin <br>
* @date 2015年9月24日 下午3:50:56
*/
public static CompanyEmail getEmailList(){
String token = getAccessToken().getAccess_token();
String respon=HttpRequestClient.sendGet("http://openapi.exmail.qq.com:12211/openapi/user/list",
"Ver=0",BEARER+" "+token);
CompanyEmail emailList = CachedObjects.GSON.fromJson(respon, CompanyEmail.class);
return emailList;
}
/**
* 获取公司所有的部门
* @return
* @author chenfanglin <br>
* @date 2015年9月24日 下午3:58:45
*/
public static Department getDepartmentList(){
String token = getAccessToken().getAccess_token();
String respon = HttpRequestClient.sendGet("http://openapi.exmail.qq.com:12211/openapi/party/list",
"partypath=",BEARER+" "+token);
Department department = CachedObjects.GSON.fromJson(respon, Department.class);
return department;
}
}
腾讯企业邮箱OpenApi相关推荐
- 腾讯企业邮箱OpenApi调用说明
笔者最近在调用腾讯企业邮箱的接口,但因为项目使用的是2016年的老接口,不是新接口(https://exmail.qq.com/qy_mng_logic/doc#10001) 因此找到了之前的老接口文 ...
- php 腾讯企业邮箱接口,帮助中心 腾讯企业邮箱OpenApi协议
欢迎你,开发者 腾讯企业邮开放平台旨在为企业拓展.定制邮箱的功能.我们为开发者提供了五大开放接口:通讯录管理.新邮件提醒.单点登录.系统日志.功能设置.希望帮助企业提升开发效率.降低开发成本和难度,从 ...
- 利用PHP调用BizMail OpenApi(腾讯企业邮箱)进行接口开发
以下引自<腾讯企业邮箱OpenApi协议v1.0> 腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类.其中,面向 企业邮用户的开放协议, 将提供给企业邮用户丰富的应用接口, ...
- 腾讯企业邮箱API实现单点登录和获取企业未读邮件
应公司要求在ERP平台的OA系统上显示企业邮箱的未读邮件数量,并且实现单点登录.也就是点击数字可以直接进入腾讯企业邮箱不用登录.既然用到这个API肯定大家也都有腾讯企业邮箱OpenApi协议v1.4文 ...
- 腾讯企业邮箱api java_腾讯企业邮箱API实现同步成员资料
同步成员资料相当于腾讯企业邮箱中对成员的增删改操作.文档里面各种不完善的参数传递走了很多弯路也算是初步成功了 直接贴代码: private void AddPersonEnterpriseMailbo ...
- python获取未读邮箱数目_利用腾讯企业邮箱开放API获取账户未读邮件数初探
1 /// 2 ///POST时用到的几个数据3 /// 4 public structPostData5 {6 /// 7 ///目标服务器地址8 /// 9 public stringurl;10 ...
- 腾讯企业邮箱接口说明文档
http://download.csdn.net/my/uploads/1 1. 开放协议简介 腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类.其中,面向企业邮用户的开放协议,将提供 ...
- zabbix 3.4 ubuntu 16 用腾讯企业邮箱作为告警邮箱
最近一直在研究zabbix监控系统,今天调试了腾讯企业邮箱作为告警邮箱的设置,本次方式是用内置email组件. 第一步: 选择Administration-->Media Types--> ...
- 【Alertmanager】腾讯企业邮箱配置
SMTP 腾讯企业邮箱配置,需要注意的地方 端口使用587 而不是 465 . 587:STARTTLS协议的属于TLS通讯协议 只是他是在STARTTLS命令执行后才对之后的原文进行保护. 465: ...
最新文章
- Libgcrypt实现AES加密
- 超出网络bios会话限制_?老旧BIOS说再见,拯救者系列设置超简单
- [MySQL优化案例]系列 -- 用TIMESTAMP类型取代INT和DATETIME
- PHP中cookie和session
- Composer更新慢的终极解决方案-转
- python百题百练 二级题目_计算机二级选择题(公共基础新大纲)
- 10分钟开始使用ICTCLAS Java版
- DS1302驱动代码
- luajit lua文件加密工具
- SAP-MM MRP类型详解
- 大数据-经典案例手机号码分区
- 多项式拟合缺点_三种回归算法及其优缺点
- 『精华』技术大牛养成指南,一篇不鸡汤的成功学实践
- 联想笔记本声音太小怎么办_笔记本声音太小,详细教您笔记本电脑声音太小解决方法...
- Java面试基础知识,一次哔哩哔哩面试经历
- Linux 内存性能检测工具
- 近视200度能学计算机吗,近视200度能不能恢复 近视200度该怎么办
- PAT甲级 1032 Sharing (25分) 测试点5陷阱
- Systemstate Dump分析经典案例
- 2022年中小企业数据安全如何保障?对比华为云与其他云计算大厂