企业微信开发文档接口API获取accesstoken和读取成员内部员工

<?php
/*** 企业微信 API*/
namespace app\common;use think\Config;
use think\Log;
use think\Cache;class WechatqiyeApi
{public $corpid = '';public $corpsecret = '';public function __construct($corpid='', $corpsecret=''){if(!$corpid) $corpid = Config::get('corpid');if(!$corpsecret) $corpsecret = Config::get('corpsecret');$this->corpid          = $corpid;$this->corpsecret      = $corpsecret;return $this;}/*** 企业微信 获取access_token* https://developer.work.weixin.qq.com/document/path/91039* @param bool $refresh* @return mixed*/public function getAccessToken($refresh = false){$corpid         = $this->corpid;$corpsecret     = $this->corpsecret;$cacheKey       = "wechatqiye_getAccessToken:" . $corpid;$access_token   = Cache::get($cacheKey);if (!$access_token || $refresh) {$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corpid}&corpsecret={$corpsecret}";$res = json_decode($this->curlGet($url));Log::info($url);Log::info($res);if ($res) {$access_token = $res->access_token;if ($access_token) {Cache::set($cacheKey, $access_token, $res->expires_in-100);}}}return $access_token;}/*** 企业微信 读取成员(单个)* https://developer.work.weixin.qq.com/document/path/90196* @param bool $refresh* @return mixed*/public function getUserone($userid, $refresh = false){$cacheKey       = "wechatqiye_getUserone:" . $userid;$userInfo       = Cache::get($cacheKey);if (!$userInfo || $refresh) {$access_token   = $this->getAccessToken();$url = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={$access_token}&userid={$userid}";$res = json_decode($this->curlGet($url));Log::info($url);Log::info($res);if ($res) {$userInfo = $res;if ($res) {Cache::set($cacheKey, $res);}}}return $userInfo;}public function curlGet($url){$curl = curl_init();curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_TIMEOUT, 500);// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);curl_setopt($curl, CURLOPT_URL, $url);$res = curl_exec($curl);if (!$res) {Log::error(curl_error($curl));}curl_close($curl);return $res;}}

结束,谢谢!

企业微信开发文档接口API获取accesstoken和读取成员内部员工相关推荐

  1. 【微信小程序】微信开发文档摘要

    此篇文章用于微信小程序的开发文档摘要,主要记录概念性的,或者说理解性的东西,对于那些硬性代码,反而不做太多汇总. 一.微信小程序简介 小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取 ...

  2. 华为鸿蒙2.0开发文档及API

    鸿蒙开发者官网:https://developer.harmonyos.com/cn/home 鸿蒙应用开发文档:https://developer.harmonyos.com/cn/docs/doc ...

  3. 华为鸿蒙2.0开发文档和API

    鸿蒙开发者官网:https://developer.harmonyos.com/cn/home 鸿蒙应用开发文档:https://developer.harmonyos.com/cn/docs/doc ...

  4. 微信开发文档笔记整理(一)

    2019独角兽企业重金招聘Python工程师标准>>> 1.微信的服务器配置说明:(用户发给公众号的消息以及开发者需要的事件推送,将被微信转发到该URL)验证算法如下:     微信 ...

  5. 使用Android Studio的时候如何查看开发文档,API文档,doc文档,SDK文档

    有的时候,我们在Android开发中需要查看需要的一些类或包里面有什么方法,返回值,调用关系和继承关系等等.这个时候我们就可以使用SDK软件开发工具中的其中之一--API文档,来查一下. 那么,下面就 ...

  6. java全文检索工具_TRS全文检索开发文档及API,工具包

    [实例简介] TRS的全文检索工具包,TRS Java应用开发接口(简称TRS JavaBeans)是基于Java组件技术-JavaBeans开发的,具有良好的跨平台特性.用户应用的界面可以是基于浏 ...

  7. TRS全文检索开发文档及API,工具包

    1.trs bean 文件分为三种 Linux.WIN32.WIN64 提取码:链接:https://pan.baidu.com/s/1zGjpEQp-8Wxzl48B-dLF-Q 提取码:zbya ...

  8. 支付宝和微信开发文档

    支付宝  https://openhome.alipay.com/developmentDocument.htm 微信  https://pay.weixin.qq.com/index.php/cor ...

  9. 腾讯企业邮箱开发(非官方开发文档方式

    ** 之前项目系统中包含了一个邮箱下载模块,其中对接的是腾讯企业邮箱,这个模块前后也维护了不短时间,想写下这篇文章来聊聊具体问题,如果有需要对接腾讯企业邮箱的需求,同时官方给予的开发文档无法满足需求, ...

最新文章

  1. 第二十课.卡尔曼滤波器
  2. python必背内容-【经验分享】学Python必背的初级单词
  3. clockdiff-检测两台linux主机的时间差
  4. Fedora 11 上安装subversion 和apache服务器
  5. Cocos2d-x内存管理研究二
  6. cpu id 系列号代码
  7. Truthman or Fakeman 并查集
  8. crontab每小时运行一次(转)
  9. MySQL 数据库和MySQL核心知识总结宝典
  10. easyExcel导出下拉选择框,多sheet数据excle导入导出
  11. ERC-3525 通过倒计时 SFT 是什么?有什么用?
  12. 线性布局管理器LinearLayout
  13. SpringSecurity(二) :授权流程
  14. delphi7解决“多步操作产生错误,请检查每一步的状态”的办法
  15. 三维地图(3D地图)离线地图开发发布时间:2020-03-03 版权:
  16. 使用arduino平台调试STM32F103C8T6最小系统板3组串口全开
  17. Django笔记七之ManyToMany和OneToOne介绍
  18. Orientation类型传感器放弃,新方案改用旋转矩阵实现指南针
  19. MySQL、Spark SQL 嵌套查询(二层、三层、多层)
  20. mtk dts文件的配置

热门文章

  1. 牛客 NC201908 小睿睿的伤害(dsu on tree, 启发式合并)
  2. 牛客挑战赛42 A.小睿睿的数列
  3. CMMI与敏捷开发模式
  4. lorawan协议网关如何选择?-东胜物联
  5. 面向对象编程和泛型编程
  6. iOS Xcode 打包IPA问题集锦
  7. java发送微信小程序模版通知
  8. 前端布局 Flex(弹性)布局
  9. android 本地html传递参数,Android WebView适配html加载本地文件并上传
  10. 从插件中获取资源的几种方式[总结]_FileLocator