一、发送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相关推荐

  1. 腾讯企业邮箱OpenApi调用说明

    笔者最近在调用腾讯企业邮箱的接口,但因为项目使用的是2016年的老接口,不是新接口(https://exmail.qq.com/qy_mng_logic/doc#10001) 因此找到了之前的老接口文 ...

  2. php 腾讯企业邮箱接口,帮助中心 腾讯企业邮箱OpenApi协议

    欢迎你,开发者 腾讯企业邮开放平台旨在为企业拓展.定制邮箱的功能.我们为开发者提供了五大开放接口:通讯录管理.新邮件提醒.单点登录.系统日志.功能设置.希望帮助企业提升开发效率.降低开发成本和难度,从 ...

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

    以下引自<腾讯企业邮箱OpenApi协议v1.0> 腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类.其中,面向 企业邮用户的开放协议, 将提供给企业邮用户丰富的应用接口, ...

  4. 腾讯企业邮箱API实现单点登录和获取企业未读邮件

    应公司要求在ERP平台的OA系统上显示企业邮箱的未读邮件数量,并且实现单点登录.也就是点击数字可以直接进入腾讯企业邮箱不用登录.既然用到这个API肯定大家也都有腾讯企业邮箱OpenApi协议v1.4文 ...

  5. 腾讯企业邮箱api java_腾讯企业邮箱API实现同步成员资料

    同步成员资料相当于腾讯企业邮箱中对成员的增删改操作.文档里面各种不完善的参数传递走了很多弯路也算是初步成功了 直接贴代码: private void AddPersonEnterpriseMailbo ...

  6. python获取未读邮箱数目_利用腾讯企业邮箱开放API获取账户未读邮件数初探

    1 /// 2 ///POST时用到的几个数据3 /// 4 public structPostData5 {6 /// 7 ///目标服务器地址8 /// 9 public stringurl;10 ...

  7. 腾讯企业邮箱接口说明文档

    http://download.csdn.net/my/uploads/1 1. 开放协议简介 腾讯企业邮箱开放协议,包括面向第三方合作应用和面向企业邮用户两类.其中,面向企业邮用户的开放协议,将提供 ...

  8. zabbix 3.4 ubuntu 16 用腾讯企业邮箱作为告警邮箱

    最近一直在研究zabbix监控系统,今天调试了腾讯企业邮箱作为告警邮箱的设置,本次方式是用内置email组件. 第一步: 选择Administration-->Media Types--> ...

  9. 【Alertmanager】腾讯企业邮箱配置

    SMTP 腾讯企业邮箱配置,需要注意的地方 端口使用587 而不是 465 . 587:STARTTLS协议的属于TLS通讯协议 只是他是在STARTTLS命令执行后才对之后的原文进行保护. 465: ...

最新文章

  1. Libgcrypt实现AES加密
  2. 超出网络bios会话限制_?老旧BIOS说再见,拯救者系列设置超简单
  3. [MySQL优化案例]系列 -- 用TIMESTAMP类型取代INT和DATETIME
  4. PHP中cookie和session
  5. Composer更新慢的终极解决方案-转
  6. python百题百练 二级题目_计算机二级选择题(公共基础新大纲)
  7. 10分钟开始使用ICTCLAS Java版
  8. DS1302驱动代码
  9. luajit lua文件加密工具
  10. SAP-MM MRP类型详解
  11. 大数据-经典案例手机号码分区
  12. 多项式拟合缺点_三种回归算法及其优缺点
  13. 『精华』技术大牛养成指南,一篇不鸡汤的成功学实践
  14. 联想笔记本声音太小怎么办_笔记本声音太小,详细教您笔记本电脑声音太小解决方法...
  15. Java面试基础知识,一次哔哩哔哩面试经历
  16. Linux 内存性能检测工具
  17. 近视200度能学计算机吗,近视200度能不能恢复 近视200度该怎么办
  18. PAT甲级 1032 Sharing (25分) 测试点5陷阱
  19. Systemstate Dump分析经典案例
  20. 2022年中小企业数据安全如何保障?对比华为云与其他云计算大厂

热门文章

  1. 有没有后悔当初选择了做程序员?
  2. 多维向量的均值、协方差
  3. 随机点名器(java基础)
  4. 网络设备监控之思科Cisco设备监控及SNMP配置
  5. Python串口操作纸币器1
  6. UE4 Engine Fix-找回4.24后失去的Matinee
  7. Flutter ListView (动态)列表组件、水平列表组件、图标组件详解
  8. C# ——web网站发布服务器
  9. 推荐系统论文重要的三个指标——Recall、NDCG、RMSE
  10. java与软件测试哪个好?