midi / work-wechat
企业微信php-sdk
v1.1.5
2022-12-14 02:59 UTC
Requires
- php: >=7.0
- ext-json: *
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- phpunit/phpunit: ^7.0
README
环境需求
- PHP >= 7.0.0
- Composer >= 2.0
安装
composer require midi/work-wechat
验证URL有效性
$service = new WorkWechat\Service\EventService('corpId','encodingAesKey','token'); try{ // 需要自行urldecode echo $service->verifyURL('msgSignature',(int)'timestamp','nonce','msgEncrypt'); }catch (\Exception $e){ print $e; echo ''; }
接收post业务数据
$service = new WorkWechat\Service\EventService('corpId','encodingAesKey','token'); $xml = file_get_contents("php://input"); try{ // 需要自行urldecode // 接收到的数据已转为array $service->decryptMsg('msgSignature',(int)'timestamp','nonce',$xml); }catch (\Exception $e){ print $e; echo 'fail'; }
网页授权
$url = WorkWechat\Service\AuthService::getRedirectUrl('corpId','https://www.baidu.com')
扫码登录
$url = WorkWechat\Service\AuthService::getQrCodeUrl('corpId','agentId','https://www.baidu.com','')
获取access_token
// 已增加本地文件缓存 $service = new WorkWechat\Service\AccessTokenService('corpId','secret'); $accessToken = $service->getToken(); // 刷新access_token $accessToken = $service->refresh();
获取访问用户身份
$service = new WorkWechat\Service\UserService(); $service->setAccessToken($accessToken); $service->companyUserByCode('code');
读取成员
$userService = new WorkWechat\Service\UserService(); $userService->setAccessToken($accessToken); $userService->detail('userId')
获取客户详情
$customerService = new WorkWechat\Service\CustomerService(); $customerService->setAccessToken($accessToken); $customerService->customerDetail('externalUserid')
联系客户统计
$customerService = new WorkWechat\Service\CustomerService(); $customerService->setAccessToken($accessToken); $customerService->userBehaviorData(['userid','userid',...],['deptmentId',...],1618780712,1649903913)
企业部门
$departmentService = new WorkWechat\Service\DepartmentService(); $departmentService->setAccessToken($accessToken); // 获取所有部门 $departmentService->list(); // 获取某个部门及下级部门 $departmentService->list(id); // 部门详情 $departmentService->detail(id); // 所有部门及部门下属员工 $departmentService->totalUserList(); // 所有部门及部门下属员工 树形结构 $departmentService->departmentTreeAndTotalUser();
发送文本消息
$messageService = new WorkWechat\Service\MessageService('agentId'); $messageService->setAccessToken($accessToken); $messageService->setMessage('text-message'); // 设置发送的文本消息 $messageService->setSecrecy(1); // 设置消息是否保密 0-否 1-是 $messageService->sendTextMsgToCompanyUser('userId','userId','userId','userId','userId','userId','userId'); // 向多个/一个userId发送此消息
如何获取external_userid
获取企业jsapi ticket
$service = new WorkWechat\Service\TicketService('corpId','secret'); $service->setAccessToken($accessToken); $service->company(); // 刷新企业jsapi ticket $service->refreshCompany()
获取应用jsapi ticket
$service = new WorkWechat\Service\TicketService('corpId','secret'); $service->setAccessToken($accessToken); $service->agent(); // 刷新应用jsapi ticket $service->refreshCompany()
明文corpid转换为加密corpid
$service = new WorkWechat\Service\TicketService('corpId','secret'); $service->setAccessToken($accessToken); $service->openCorpId("corpid");
通讯录标签管理
$service = new WorkWechat\Service\TagService(); $service->setAccessToken($accessToken); // 具体实现方法 $service->list(); $service->create("标签名"); $service->update($tagId,"标签名"); $service->delete($tagId); $service->userList($tagId); // 绑定用户或部门下用户 $service->bindTagUser($tagId,'userId-1','userId-2','userId-3','userId-4',...); // 可绑定1个或多个,100条上限 $service->bindTagDepartment($tagId,$deptId,$deptId,$deptId,$deptId,$deptId,...); // 可绑定1个或多个,100条上限 // 绑定用户或部门下用户 $service->deleteTagUser($tagId,'userId-1','userId-2','userId-3','userId-4',...); // 删除1个或多个,100条上限 $service->deleteTagDepartment($tagId,$deptId,$deptId,$deptId,$deptId,$deptId,...); // 删除1个或多个,100条上限