专栏首页LaravelCode腾讯云即时通信 IM 服务端 SDK for PHP

腾讯云即时通信 IM 服务端 SDK for PHP

安装

$ composer require hedeqiang/ten-im -vvv

配置

使用本扩展前需要登录 即时通信 IM 控制台 创建应用,配置管理员、获取 app_id、Key 等关键信息

更多请查看并熟读 即时通信 IM 服务端API

REST API 接口列表

使用

获取用户在线状态

<?php

require __DIR__ .'/vendor/autoload.php';

use Hedeqiang\TenIM\IM;

$config = [
    'sdk_app_id' => '14002***',
    'identifier' => 'hedeqiang',
    'secret_key' => 'a56e6938cb1a8856d15*****',
];
$im = new IM($config);

$params = [
    'To_Account' => ['hedeqiang']
];

print_r($im->send('openim','querystate',$params));

返回示例

{
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 0,
    "QueryResult": [{
        "To_Account": "1",
        "State": "Offline"
    }]
}

设置资料

$params = [
    'From_Account' => 'hedeqiang',
        'ProfileItem' => [
            ['Tag' => 'Tag_Profile_IM_Nick', 'Value' => 'hedeqiang'],
            ['Tag' => 'Tag_Profile_IM_Gender', 'Value' => 'Gender_Type_Male'],
            ['Tag' => 'Tag_Profile_IM_BirthDay', 'Value' => 19940410],
            ['Tag' => 'Tag_Profile_IM_SelfSignature', 'Value' => '程序人生的寂静欢喜'],
            ['Tag' => 'Tag_Profile_IM_Image', 'Value' => 'https://upyun.laravelcode.cn/upload/avatar/1524205770e4fbfbff-86ae-3bf9-b7b8-e0e70ce14553.png'],
        ],
];

print_r($im->send('profile','portrait_set',$params));

返回示例:

{
    "ActionStatus": "OK",
    "ErrorCode": 0,
    "ErrorInfo": "",
    "ErrorDisplay": ""
}

单发单聊消息

$params = [
    'SyncOtherMachine' => 1, // 消息不同步至发送方
    'From_Account' => '1',
    'To_Account' => '2',
    'MsgRandom' => 1287657,
    'MsgTimeStamp' => 1557387418,
    'MsgBody' => [
        [
            'MsgType' => 'TIMTextElem',
            'MsgContent' => [
                'Text' => '晚上去撸串啊'
            ]
        ]
    ]
];

print_r($im->send('openim','sendmsg',$params));

返回示例:

{
    "ActionStatus":"OK",
    "ErrorInfo":"",
    "ErrorCode":0,
    "MsgTime":1573179125,
    "MsgKey":"748144182_1287657_1573179125"
}

其中 send 方法接收三个参数。第一个参数 $servicename : 内部服务名,不同的 servicename 对应不同的服务类型;第二个参数 $command:命令字,与 servicename 组合用来标识具体的业务功能;第三个参数为请求包主体 示例:v4/im_open_login_svc/account_import,其中 im_open_login_svcservicenameaccount_importcommand

请求包示例:

{
    "From_Account":"id",
    "ProfileItem":
    [
        {
            "Tag":"Tag_Profile_IM_Nick",
            "Value":"MyNickName"
        }
    ]
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hyperf 初体验-异常处理器

    在 Hyperf 里,业务代码都运行在 Worker进程 上,也就意味着一旦任意一个请求的业务存在没有捕获处理的异常的话,都会导致对应的 Worker进程 被中...

    hedeqiang
  • 使用 Hexo 快速搭建博客

    Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

    hedeqiang
  • 解决 Mac 下 iterm2 vim 中文乱码

    今天使用 iterm2 连接 Linux 远程服务器,然后 vim 编辑一个文件,忽然发现中文乱码,新增中文也是乱码。

    hedeqiang
  • UnicodeEncodeError:'latin-1' codec can't encode characters in position 0-1: ordinal not in range(...

    解决方法,在sql.py中,或者是链接数据库时,添加:最后增加一个 : charset="utf8" 就好了

    Python疯子
  • windows下安装python2与py

        添加变量值内容D:\python3\Scripts\;D:\python3\;D:\python2\Scripts\;D:\python2\    (p...

    py3study
  • Jest基本使用方法以及mock技巧介绍

    Jest是由Facebook开发并维护的一套js的单元测试框架,之前在后台的nodejs项目里面第一次尝试使用,感觉还是非常容易上手的,功能也比较强大。

    腾讯移动品质中心TMQ
  • sum(x) over( partition by y ORDER BY z ) 分析

    1. 从最简单的开始   sum(...) over( ),对所有行求和   sum(...) over( order by ... ),和 = 第一行 到 ...

    java达人
  • Hbase常用Shell命令

    status 查看系统状态 hbase(main):010:0> status 1 active master, 0 backup masters, 4 ser...

    用户1154259
  • 人脸检测——AFLW准备人脸

    不多说了,直接代码吧: 生成AFLW_ann.txt的代码,其中包含图像名称 和 图像中人脸的位置(x,y,w,h); ** AFLW中含有aflw.aqlit...

    MachineLP
  • Java UDP的简单实例以及知识点简述

      Java中实现UDP协议的两个类,分别是DatagramPacket数据包类以及DatagramSocket套接字类。

    Rekent

扫码关注云+社区

领取腾讯云代金券