PHPackages                             jk-tech/tencent-im - 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. jk-tech/tencent-im

ActiveLibrary[API Development](/categories/api)

jk-tech/tencent-im
==================

Tencent-IM support in Laravel.

032PHP

Since Dec 19Pushed 6y agoCompare

[ Source](https://github.com/techjkweixin/TencentIm)[ Packagist](https://packagist.org/packages/jk-tech/tencent-im)[ RSS](/packages/jk-tech-tencent-im/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

腾讯IM
----

[](#腾讯im)

### 环境需求

[](#环境需求)

- PHP &gt;= 7.0
- openssl 扩展

### 安装

[](#安装)

- 命令行执行

```
$ composer require jk-tech/tencent-im
```

若安装出现

```
[InvalidArgumentException]
Could not find a version of package eddie/tencent matching your minimum-stability (dev). Require it with an explicit version constraint allowing its desired stability.
```

可以在composer.json文件 `require` 中添加

```
{
  "require": {
    "jk-tech/tencent-im": "dev-master"
  }
}
```

并添加 `repositories` 镜像源

```
"repositories": {
    "tencent-im": {
        "type": "vcs",
        "url": "https://tech%40jkweixin.net:tech%40jkweixin.net@github.com/techjkweixin/TencentIm.git"
    }
},
```

运行 `composer update`

- 添加注册
    - Laravel

        - Laravel 5.5使用包自动发现，所以不需要手动添加ServiceProvider; 版本小于Laravel 5.5需在 `config/app.php` 中注册服务提供者:

        ```
        'providers' => [
            ...

            JkTech\TencentIm\Provider\ImServiceProvider::class,

            ...
        ]

        'aliases' => [
            ...

            'TencentIm' => JkTech\TencentIm\Provider\ImServiceProvider::class,

            ...
        ]
        ```
    - Lumen

        - 在 `bootstrap/app.php` 中添加

        ```
        $app->register(\JkTech\TencentIm\Provider\ImServiceProvider::class);
        ```

### 配置

[](#配置)

- 用发布命令将包配置复制到本地配置

```
$ php artisan vendor:publish --provider="JkTech\TencentIm\Im\ImServiceProvider"
```

- 配置内容可以在`.env`中配置

```
IM_APPID=12345678
IM_IDENTIFIER=account_identifier
IM_SIGN_EXPIRED=15552000
IM_PRIVATE_KEY=/your_private_key_path/private_key
IM_PUBLIC_KEY=/your_public_key_path/public_key
```

### 使用

[](#使用)

1. 签名 `signature`

    ```
    /*
     * 生成签名
     */
    $identifier = 'user';
    $sign = TencentIm::signature()->generate($identifier);

    /*
     * 签名校验
     */
    if ( TencentIm::signature()->verify($sign, $identifier) ) {
        echo "success";
    } else {
        echo "fail";
    }
    ```
2. 消息 `message`

    ```
    /*
     * 解析IM回调消息
     */
    $message = TencentIm::message()->parse(request()->all());

    /*
     * 读取消息
     */
    $message->fromAccount; // 消息发送方帐号
    $message->toAccount; // 消息接收方帐号
    $message->isCallback; // 或 "$message->is_callback", 是否IM回调, 返回"true"、"false"
    $message->callbackBefore; // 是否发送消息之前回调, 返回"true"、"false"
    $message->callbackAfter; // 是否发送消息之后回调, 返回"true"、"false"
    $message->msgTime; // 消息时间戳，unix 时间戳。

    // 一条消息可包括多种消息元素, 所以"msgBody"为数组
    $message->msgBody; // 消息内容, 默认返回"msgBody"数组的第一个元素
    $message->msgBody(); // 返回"msgBody"数组
    $message->msgBody($index); // 根据传入的索引值返回"msgBody"对应元素, 若传入的索引值大于"msgBody"数组长度, 则返回最后元素

    $message->msgBody->text; // 文本消息 - 消息内容
    $message->msgBody->data; // 自定义消息 - 自定义消息数据
    $message->msgBody->desc; // 自定义消息 - 自定义消息描述信息
    $message->msgBody->ext; // 自定义消息 - 扩展字段
    /*
     * 注:
     *     详细参考腾讯IM [消息格式描述](https://cloud.tencent.com/doc/product/269/%E6%B6%88%E6%81%AF%E6%A0%BC%E5%BC%8F%E6%8F%8F%E8%BF%B0)
     *     属性名 以 IM消息格式中所定义的字段名的小驼峰命名
     */

    $message->handleCallbackBeforeSend(function ($message) { // 处理发送消息之前回调
        // ...
    })
    $message->handleCallbackAfterSend(function ($message) { // 处理发送消息之后回调
        // ...
    })

    /*
     * 发送消息
     */
    // 单发单聊消息
    TencentIm::message()
    ->append(new \JkTech\TencentIm\Message\Bag([
         'MsgType' => 'TIMTextElem',
         'MsgContent' => [
             'Text' => 'hello, world'
         ]
     ]))
    ->send('to_account', ['From_Account' => 'from_account']);
    // 批量发单聊消息
    TencentIm::message()
    ->append(new \JkTech\TencentIm\Message\Bag([
         'MsgType' => 'TIMTextElem',
         'MsgContent' => [
             'Text' => 'hello, world'
         ]
     ]))
     ->batchSend(['to_account1', 'to_account2'], ['From_Account' => 'from_account']);
    ```
3. 账号 `account`

    ```
    $account = TencentIm::account(); // 获取服务

    $account->identifier('demo')             // 用户名, 必填
        ->faceUrl('http://xxxx/avatar.png')  // 用户头像URL
        ->nick('Jack')                       // 用户昵称
        ->setRobot()                         // 设置帐号类型; 值: 0->表示普通帐号, 1->表示机器人帐号
        ->save()                             // 保存用户信息, 提交到IM
    ;

    /*
     * 拉取资料
     */
    $identifier = 'user_123'; // Or ['user_111', 'user_222']; // 获取多个用户信息传入数组类型; (注:每次拉取的用户数不得超过100个)
    $info = $account->get($identifier);
    ```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

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

### Community

Maintainers

![](https://www.gravatar.com/avatar/b372946e743e1ed6d6a8557fa9268d179a60caf5c40a2366f32fae871615902a?d=identicon)[techjkweixin](/maintainers/techjkweixin)

---

Top Contributors

[![EddieLau0402](https://avatars.githubusercontent.com/u/9668346?v=4)](https://github.com/EddieLau0402 "EddieLau0402 (16 commits)")

### Embed Badge

![Health badge](/badges/jk-tech-tencent-im/health.svg)

```
[![Health](https://phpackages.com/badges/jk-tech-tencent-im/health.svg)](https://phpackages.com/packages/jk-tech-tencent-im)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

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

GitHub API v3 client

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

PHP SDK for Facebook Business

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

The Microsoft Graph SDK for PHP

65723.5M95](/packages/microsoft-microsoft-graph)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)

PHPackages © 2026

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