PHPackages                             ywn/wecomapi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ywn/wecomapi

ActiveLibrary[API Development](/categories/api)

ywn/wecomapi
============

WeWork API SDK, 企业微信接口客户端SDK封装

1.0.1(2y ago)04MITPHPPHP &gt;=7.1

Since Jan 30Pushed 2y agoCompare

[ Source](https://github.com/runnning/wecomapi)[ Packagist](https://packagist.org/packages/ywn/wecomapi)[ RSS](/packages/ywn-wecomapi/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

About
=====

[](#about)

此项目是Fork自[https://github.com/sbzhu/weworkapi\_php。原项目基本无后续开发，因此自己加了一些新功能进来。](https://github.com/sbzhu/weworkapi_php%E3%80%82%E5%8E%9F%E9%A1%B9%E7%9B%AE%E5%9F%BA%E6%9C%AC%E6%97%A0%E5%90%8E%E7%BB%AD%E5%BC%80%E5%8F%91%EF%BC%8C%E5%9B%A0%E6%AD%A4%E8%87%AA%E5%B7%B1%E5%8A%A0%E4%BA%86%E4%B8%80%E4%BA%9B%E6%96%B0%E5%8A%9F%E8%83%BD%E8%BF%9B%E6%9D%A5%E3%80%82)主要增加的有：

1. 互联企业相关（注：小程序暂不支持互联企业用户，因为无法解code）：参考 api\\examples\\testLink.php
    - 互联企业消息推送
    - 互联企业的通讯录信息获取（成员、部门等）
2. 消息发送：增加了新进企业微信消息发送功能：
    - MarkDown消息发送；
    - 小程序消息发送；
    - 任务卡片消息发送（需要企业微信应用有回调功能支持）；
3. 增加使用Redis缓存。在 config 文件中修改配置。

本项目着重*重构了 composer 功能*，可使用 comopser update 添加到自己的项目中。

后续会继续增加丰富其功能。

### composer 安装方法：

[](#composer-安装方法)

composer require ywn/wecomapi

或在 require 中添加以下，并执行 composer update

```
"ywn/wecomapi":  "dev-master"

```

### Phalapi 框架的使用方法建议：

[](#phalapi-框架的使用方法建议)

1. 配置文件：在 config/app.php 中增加企业微信相关的配置。比如： ```
    return [
       'qywx'=>['corpid'=>'','agentId'=>'','secret'=>'']
    ];
    ```
2. 使用composer更新了代码后，在 Api/Site.php 中使用： ```
       use Phalapi\API;
       use WeWorkApi\CorpAPI;
       use WeWorkApi\Utils\ParameterError;
       class Qywx extends API{
       public function Sendmsg(){
           $config = DI()->config->get("app.qywx");
           try {
               $api = new CorpAPI($config['corpid'], $config['secret']);
           } catch (ParameterError $e) {
               echo $e->getMessage() . "\n";
           }
           $user = $api->UserGet("userid");
           var_dump($user);
           //
           $user->mobile = "1219887219873";
           $api->UserUpdate($user);
       }
    }
    ```

### 使用ThinkPHP的扩展更新示例：

[](#使用thinkphp的扩展更新示例)

1. 用 comopser 添加 "logmecn/weworkapi"
2. 在config 中添加企业微信对应 的配置；
3. 在 application 对应的文件中，使用类似上面Phalapi的方法。

使用企业微信时注意以下几个概念：
----------------

[](#使用企业微信时注意以下几个概念)

1. 留意几个id：
    - corpid ： 企业id，用于识别企业的唯一性。在 [https://work.weixin.qq.com/wework\_admin](https://work.weixin.qq.com/wework_admin) 扫码登录企业微信管理后台后， “我的企业、企业ID”获取。
    - agentid： 应用的id，是在企业微信管理后台的“应用管理、应用”中获取
    - appid： 企业微信中的应用，如果使用了小程序，则会有小程序的appid
    - userid： 使用企业微信接口获取到的用户唯一id标识。
2. 留意几个secret：
    - 通讯录secret：在企业微信管理后台的“管理工具、通讯录同步”中，可设置回调地址和密钥。
    - 应用 secret：对应上面应用中的 agentid 下面一行的secret
    - 客户群 secret：在企业微信管理后台的“客户工具、客户”右边，有一个API，点进去可查看到。
    - 会话存档密钥：在“管理工具、会话内容存档”中按提示设置。可以使用 open\_ssl 生成一个公钥发给企业微信，生成的密钥放在服务器上对接收信息解密。
3. 关联企业和企业互联：这是两个不同的概念，不要混淆。
    - 关联企业：新添加的关联企业功能，需要有另外一个企业微信做设置。 通讯录之间没有上下级关系，是同级的。
    - 企业互联：两个不同的企业通讯录，有上下级关系。

以下原说明
=====

[](#以下原说明)

weworkapi\_php 是为了简化开发者对企业微信API接口的使用而设计的，API调用库系列之php版本
包括企业API接口、消息回调处理方法、第三方开放接口等
本库仅做示范用，并不保证完全无bug；
另外，作者会不定期更新本库，但不保证与官方API接口文档同步，因此一切以[官方文档](https://work.weixin.qq.com/api/doc)为准。

更多来自个人开发者的其它语言的库推荐：
python : [https://github.com/sbzhu/weworkapi\_python](https://github.com/sbzhu/weworkapi_python) (企业微信团队)
ruby ：  MyColorway(个人开发者)
php : [https://github.com/sbzhu/weworkapi\_php](https://github.com/sbzhu/weworkapi_php) (企业微信团队)
golang : [https://github.com/sbzhu/weworkapi\_golang](https://github.com/sbzhu/weworkapi_golang) (企业微信团队)
golang :  (个人开发者)

Requirement
===========

[](#requirement)

经测试，PHP 5.3.3 ~ 7.2.0 版本均可使用

Director
========

[](#director)

├── examples // API接口的测试用例
└── src // API接口的关键逻辑
│ ├── api // API 接口
│ │ ├── datastructure // API接口需要使用到的一些数据结构
│ ├── callback // 消息回调的一些方法
│ ├── config.php
│ ├── CorpApi.php // 基础类
│ ├── LinkpApi.php // 关联企业等其他功能类
│ └── utils // 一些基础方法
├── composer.json
└── README.md

Usage
=====

[](#usage)

将本项目下载到你的目录，既可直接引用相关文件

```
//include_once("api/src/CorpAPI.php");
use WeWorkApi\CorpAPI;
// 实例化 API 类
$api = new CorpAPI($corpId='ww55ca070cb9b7eb22', $secret='ktmzrVIlUH0UW63zi7-JyzsgTL9NfwUhHde6or6zwQY');

try {
    // 创建 User
    $user = new User();
    {
        $user->userid = "userid";
        $user->name = "name";
        $user->mobile = "131488888888";
        $user->email = "sbzhu@ipp.cas.cn";
        $user->department = array(1);
    }
    $api->UserCreate($user);

    // 获取User
    $user = $api->UserGet("userid");

    // 删除User
    $api->UserDelete("userid");
} catch {
    echo $e->getMessage() . "\n";
    $api->UserDelete("userid");
}

```

详细使用方法参考每个模块下的测试用例：example目录下对应的文件

关于token的缓存
==========

[](#关于token的缓存)

token是需要缓存的，不能每次调用都去获取token，[否则会中频率限制](https://work.weixin.qq.com/api/doc#10013/%E7%AC%AC%E5%9B%9B%E6%AD%A5%EF%BC%9A%E7%BC%93%E5%AD%98%E5%92%8C%E5%88%B7%E6%96%B0access_token)
在本库的设计里，token是以类里的一个变量缓存的
比如api/src/CorpAPI.php 里的$accessToken变量
在类的生命周期里，这个accessToken都是存在的， 当且仅当发现token过期，CorpAPI类会自动刷新token
刷新机制在 api/src/API.php
所以，使用时，只需要全局实例化一个CorpAPI类，不要析构它，就可一直用它调函数，不用关心 token

```
$api = new CorpAPI(corpid, corpsecret);
$api->dosomething()
$api->dosomething()
$api->dosomething()
....

```

当然，如果要更严格的做的话，建议自行修改，`全局缓存token，比如存redis、存文件等`，失效周期设置为2小时。

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 65% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

836d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/38d9b80804eaf72ff60eba450dbb40db303c03b362a157266de321169667a7dc?d=identicon)[ywn](/maintainers/ywn)

---

Top Contributors

[![logmecn](https://avatars.githubusercontent.com/u/10161552?v=4)](https://github.com/logmecn "logmecn (13 commits)")[![runnning](https://avatars.githubusercontent.com/u/28438721?v=4)](https://github.com/runnning "runnning (7 commits)")

---

Tags

weworklogmecn

### Embed Badge

![Health badge](/badges/ywn-wecomapi/health.svg)

```
[![Health](https://phpackages.com/badges/ywn-wecomapi/health.svg)](https://phpackages.com/packages/ywn-wecomapi)
```

###  Alternatives

[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)[hubspot/api-client

Hubspot API client

23414.2M16](/packages/hubspot-api-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
