PHPackages                             jasonzhangxian/yii2-dingtalk-corp - 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. jasonzhangxian/yii2-dingtalk-corp

ActiveYii2-extension[API Development](/categories/api)

jasonzhangxian/yii2-dingtalk-corp
=================================

dingtalk API for yii2 framework

1.0.3(8y ago)1861BSD-3-ClausePHP

Since Aug 16Pushed 8y ago1 watchersCompare

[ Source](https://github.com/jasonzhangxian/dingtalk)[ Packagist](https://packagist.org/packages/jasonzhangxian/yii2-dingtalk-corp)[ RSS](/packages/jasonzhangxian-yii2-dingtalk-corp/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (3)Versions (6)Used By (0)

Yii2钉钉扩展
========

[](#yii2钉钉扩展)

[![Total Downloads](https://camo.githubusercontent.com/0ad0ce9c9ff2ab85b0b0296cc41c1cbc87030ec692d0c85002eaccd8e3669a70/68747470733a2f2f706f7365722e707567782e6f72672f6a61736f6e7a68616e677869616e2f796969322d64696e6774616c6b2d636f72702f646f776e6c6f6164732e706e67)](https://packagist.org/packages/jasonzhangxian/yii2-dingtalk-corp)

基于官方demo改写的，参考了[buptlsp](https://github.com/buptlsp/yii2-dingtalk)的一些写法

本扩展提供了对钉钉API接口的常规访问，具体的API页面访问[钉钉API接口](https://open-doc.dingtalk.com/)

使用了一些其他的包，[nategood/httpful](https://github.com/nategood/httpful)，[alexandernst/yii2-device-detect](https://github.com/alexandernst/yii2-device-detect)

```
"nategood/httpful": "*",
"alexandernst/yii2-device-detect": "0.0.11"

```

安装
--

[](#安装)

推荐的方式是通过composer 进行下载安装[composer](http://getcomposer.org/download/)。

在命令行执行

```
php composer.phar require --prefer-dist jasonzhangxian/yii2-dingtalk-corp "*"

```

或加入

```
"jasonzhangxian/yii2-dingtalk-corp": "*"

```

到你的`composer.json`文件中的require段。

使用
--

[](#使用)

安装了这个插件，你就需要在配置文件中加入如下的代码：

```
return [
    'components' => [
    	//钉钉接口
        'dingtalk' => [
             'class' => '\jasonzhangxian\dingtalk\Dingtalk',
             'agentid' => '', //您的应用的agentid
             'corpid' => '',  //您的企业corpid
             'corpsecret' => '', //您的企业的corpsecret
        ],
        //钉钉扫码登录
        'dingtalksns' => [
            'class' => '\jasonzhangxian\dingtalk\DingtalkSns',
            'appid' => "",//扫码登录申请的appid
            'appsecret' => "",//扫码登录申请的appsecret
            'redirect_uri' => "",//扫码登录跳转地址
        ],
        //判断设备类型
        'devicedetect' => [
            'class' => 'alexandernst\devicedetect\DeviceDetect'
        ],
        //Yii缓存
        'cache'         => [
            'class' => 'yii\caching\FileCache',
        ],
        // ....
    ],
];
```

在配置好之后：

扫码登录的实现，前端页面添加：

```
echo \jasonzhangxian\dingtalk\JsSnsConfig::widget([
    'container_id' => "login_container", //二维码容器ID，你需要在页面增加对应的html代码
]);
```

后端redirect\_uri的代码：

```
$code = Yii::$app->request->get('code');
//通过临时授权码获取用户信息
$user_info = Yii::$app->dingtalksns->getUserByCode($code);
//根据用户信息，执行登录
.
.
.
```

钉钉接口调用：

```
//获取部门列表
$department_list = Yii::$app->dingtalk->run('/department/list');

//发送消息
$userid = '';//接收消息的用户
$response = Yii::$app->dingtalk->run('/message/send', [], ['touser'=>$userid,'agentid'=>Yii::$app->dingtalk->agentid,'msgtype'=>'text','text'=>['content'=>'Hello World!']]);
```

JsApi 参考的[buptlsp](https://github.com/buptlsp/yii2-dingtalk)的写法

```
echo \jasonzhangxian\dingtalk\JsapiConfig::widget([
    'jsApiList' => ["runtime.permission.requestAuthCode"], //本页面需要使用的jsapi,本例中为免登服务
    'successJs' => 'function(){ //jsapi配置好后执行的JS回调，我们可以在此处开始写执行的代码
         '.(!\Yii::$app->devicedetect->isMobile()?'DingTalkPC':'dd').'.runtime.permission.requestAuthCode({
             corpId: "'.\Yii::$app->dingtalk->corpid.'",
             onSuccess: function(result) {
                 $.ajax({
                     url: "", //此处填上根据code登录的url
                     data: {
                         code: result.code
                     },
                     success: function(data){  //处理成功请求
                     },
                 });
             },
             onFail : function(err) {
                 //alert(err.errmsg);
             }
         });
    }',
    //'errorJs' => 'function(){}', //错误时的JS,默认会输出错误的信息
]);
```

回调 使用了Yii2的behaviors功能，在controller里面设置：

```
    public $layout = false;
    public $enableCsrfValidation = false;

    public function behaviors()
    {
        return [
            'callbackbehavior' => [
                'class' => 'jasonzhangxian\dingtalk\behaviors\CallbackBehavior',
                '_token' => 'your token',
                '_encodeing_aes_key' => 'your encodeing_aes_key',
                '_suite_key' => 'your corpid',
                'actions' => ['index']//回调入口action
            ],
        ];
    }

    public function actionIndex()
    {
        $data = Yii::$app->request->getBodyParams();

        //用于注册回调时 返回加密后的success字符串
        if (isset($data['EventType']) && $data['EventType'] == "check_url") {
            echo json_encode($data['encryptMsg']);
        }else{
            //处理回调的逻辑代码
        }
    }
```

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 72.7% 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

Every ~111 days

Total

5

Last Release

3163d ago

Major Versions

0.0.1 → 1.0.02016-08-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/1fb4ac77b43cefbc3e750dfe49e2fc2aa9fa31eaf72af327f4a254a982f32a08?d=identicon)[jasonzhangxian](/maintainers/jasonzhangxian)

---

Top Contributors

[![jasonzhangxian](https://avatars.githubusercontent.com/u/6252335?v=4)](https://github.com/jasonzhangxian "jasonzhangxian (8 commits)")[![new7zhangxuedong](https://avatars.githubusercontent.com/u/166266337?v=4)](https://github.com/new7zhangxuedong "new7zhangxuedong (3 commits)")

---

Tags

yii2extensiondingtalkdingding

### Embed Badge

![Health badge](/badges/jasonzhangxian-yii2-dingtalk-corp/health.svg)

```
[![Health](https://phpackages.com/badges/jasonzhangxian-yii2-dingtalk-corp/health.svg)](https://phpackages.com/packages/jasonzhangxian-yii2-dingtalk-corp)
```

###  Alternatives

[lspbupt/yii2-dingtalk

dingtalk API for yii2 framework

2420.4k](/packages/lspbupt-yii2-dingtalk)

PHPackages © 2026

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