首页 > 编程语言 >腾讯im php对接

腾讯im php对接

时间:2024-07-13 11:29:34浏览次数:6  
标签:account TLSSigAPIv2 dump url im sdkappid 腾讯 php data

参考:https://blog.51cto.com/u_15968310/6061423

 1.下载安装 tls-sig-api-v2

生成非管理员id的时候需要“自有帐号导入即时通信”、才能生成对应user_id的签名;导入时“Identifier”这个字段相当于user_id

## 说明
此项目为 tls-sig-api-v2 版本 php 实现,之前非对称密钥无法使用此版本 api,如需使用请查看[这里](https://github.com/tencentyun/tls-sig-api-php)。

## 集成
使用 composer 或者源码集成均可。

### composer 集成
``` json
{
  "require": {
    "tencent/tls-sig-api-v2": "1.0"
  }
}

2.

function randomsum($sum){
      $z="";
    for($i=0;$i<$sum/4;$i++){
       $z .=rand(1000,9999);
    }

    return $z;
}


    /**
   * curl post 模拟发送数据
   * @param $cate
   * @return array
   */
  function postCurls($url, $data){
        $data  = json_encode($data); 
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);    //HTTP浏览器访问版本
        curl_setopt($curl, CURLOPT_HEADER, false);                          //头部信息
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);                   //返回的内容作为变量储存              
        curl_setopt($curl, CURLOPT_URL, $url);                              //访问网址         
        curl_setopt($curl, CURLOPT_POST, true);                             //post请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);                      //请求数据
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);                   //对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);                  //从证书中检查SSL加密算法是否存在
        $result = curl_exec($curl);                                         //抓取URL并把它传递给浏览器
        curl_close($curl);                                                  //关闭当前curl
        return $result;
  }

3.创建操作类,调用curl。

<?php
 
require_once "curl.php";//公共函数
require_once "TLSSigAPIv2.php";//签名生成

 
//$account = new User; 
 
// var_dump($account->genUserSig($id),0);
// var_dump($account->account_import("2","1","1"),1);
// var_dump($account->account_delete([  ["UserID"=>"1"]   ]),2);die;
// var_dump($account->account_check([ ["UserID"=>"1"] ]),3);die;
// var_dump($account->querystate([1] ,1),4);
 
class User{
    private $sdkappid = ***;
    private $identifier = "***";

    //自有帐号导入即时通信
    public function account_import($Identifier,$Nick,$FaceUrl) {

        $url = "https://console.tim.qq.com/v4/im_open_login_svc/account_import?";

        $url = $this->geturlparameter($url);
        $data = [
            "Identifier" => $Identifier,
            "Nick" => $Nick,
            "FaceUrl" => $FaceUrl
        ];
        // var_dump($data);die;
        $s = postCurls($url,$data);
        return $s;
    }
    //删除
    public function account_delete($DeleteItem) {

        $url = "https://console.tim.qq.com/v4/im_open_login_svc/account_delete?";
        $url = $this->geturlparameter($url);

        $data = [
            "DeleteItem" => $DeleteItem

        ];
        //  echo( json_encode($data));
        $s = postCurls($url,$data);

        return $s;
    }
    //查询帐号
    public function account_check($CheckItem) {

        $url = "https://console.tim.qq.com/v4/im_open_login_svc/account_check?";
        $url = $this->geturlparameter($url);

        $data = [
            "CheckItem" => $CheckItem

        ];
        //  echo( json_encode($data));
        $s = postCurls($url,$data);

        return $s;
    }

    //查询帐号在线状态
    public function querystate($To_Account ,$IsNeedDetail) {

        $url = "https://console.tim.qq.com/v4/im_open_login_svc/account_check?";
        $url = $this->geturlparameter($url);


        $data = [
            "IsNeedDetail" => $IsNeedDetail,
            "To_Account" => $To_Account
        ];
        //  echo( json_encode($data));
        $s = postCurls($url,$data);

        return $s;
    }
    //帐号生成的签名
    public function genUserSig($id) {
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,false);
        // var_dump(1);die;
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,"b7009c4a7bc78740e5a472a443978d282805cf62d931db0bc89920d0d57a7c80");
     

        return $TLSSigAPIv2->genUserSig($id);
    }
    //链接
    public function geturlparameter($url) {
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,false);
        // var_dump(1);die;
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,"b7009c4a7bc78740e5a472a443978d282805cf62d931db0bc89920d0d57a7c80");
        $zz = $url.http_build_query(array(
            "sdkappid" => $this->sdkappid,
            "identifier" => $this->identifier,
            "usersig" => $TLSSigAPIv2->genUserSig("administrator"),
            'random' => randomsum(32),
            'contenttype' => 'json'
        ));

        return $zz;
    }


}

 

标签:account,TLSSigAPIv2,dump,url,im,sdkappid,腾讯,php,data
From: https://www.cnblogs.com/wjs2019/p/18299837

相关文章

  • {eyou:artlist typeid='栏目ID' limit='0,10' flag='c' titlelen='30
    artlist文档列表(配合arcpagelist标签可实现ajax瀑布流分页) [基础用法]标签:artlist描述:获取网站栏目(如:文章、产品、图集、软件等)的一些文章。用法:{eyou:artlisttypeid='栏目ID'limit='0,10'flag='c'titlelen='30'infolen='160'orderby='add_time'}  &......
  • 解决Microsoft Visual C++ runtime package找不到问题
    使用了Dism++进行电脑清理,不小心选择了下面两个内容:尤其是第二个packagecache绝对不能清空,否则不知道哪个软件就不能运行了,报MicrosoftvisualC++runtime问题.然后再安装各个版本MicrosoftvisualC++redis仍会报同样的问题,死循环了.网上有各种解决方案,有......
  • manim学习笔记04:使用manim,表示向量和加法。
    manim学习笔记04:使用manim,表示向量和加法。一,相关定义1.有向线段:规定若线段AB的端点为起点为A,B为终点,则线段就具有了从起点A到终点B的方向和长度。具有方向和长度的线段叫做有向线段。接下来我们体会一下相关的代码:classVectorArrow(Scene):defconstruct(self):......
  • 【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器
    ​省流目录:适用于博客建站(2-4G)、个人开发/小型游戏[传奇/我的世界/饥荒](4-8G)、数据分析/大型游戏[幻兽帕鲁/雾锁王国]服务器(16-64G)1.京东云-专属活动 官方采购季专属活动地址:京东云-618采购季服务器活动专区https://3.cn/20-J4jjX京东云又双叒降价了!活动页大改,增加两个大......
  • 腾讯云加速企业和个人开发创新公开课直播预告
    直播预告:07/18(周四)15:00-16:00随着人工智能与大模型的蓬勃发展,我们正步入一个由技术驱动的创新时代。Al不仅是技术革新的先锋,更是每位程序员不可或缺的“搭子”,掌握AI工具的创造、加工与使用技巧,成为广大从业者当下的挑战之一。腾讯云高性能应用服务HAl,打造一系列热门框架模......
  • vim内置erm的使用及实现
    intro在使用vim的时候,一个非常常用的功能就是搜索功能。搜索在缺少工程级别搜索的情况下,搜索通常不是一次完成的:通常的场景是提供一个最明显的关键字(并且忽略大小写),然后从结果中再缩小搜索范围,直到找到搜索结果。在这个迭代的过程中,可能需要从上次的输出中拷贝一部分、简单编......
  • php将png转为jpg,可设置压缩率
    /***将PNG文件转换为JPG文件*@param$pngFilePathstringPNG文件路径*@param$jpgFilePathstringJPG文件路径*@param$qualityintJPG质量,0-100,值越低,压缩率越高*@returnvoid*@throwsException*/functionconvertPngToJpg($pngFilePath,$j......
  • php计算两张照片的相似度,范围:0-100
    可以是本地图片也可以是网络图片需要gd库/***计算图片相似度*@param$imagePath1string图片路径1*@param$imagePath2string图片路径2*@returnfloat|int0(完全两张图片)-100(两张一模一样的图片)*/functioncalculateImageSimilarity($imagePath1,$imag......
  • 更新扫描MySQL库里的所有表的UPDATE_TIME,若发生变动就mysqldump
    背景 #!/bin/bash#MySQL连接信息MYSQL_USER="root"MYSQL_PASSWORD="123!"MYSQL_DATABASE="dev_flow_table"#记录上次查询的更新时间的文件LAST_RESULT_FILE="last_result.txt"CURRENT_RESULT_FILE="current_result.txt"DUMP_FILE......
  • ARFoundation系列讲解 - 94 Immersal 简介
    一、Immersal简介Immersal是一家专注于增强现实(AR)技术的公司,致力于开发和推广空间感知解决方案(简称:大空间技术)。他们的核心产品是一个名为ImmersalSDK的开发工具包,通过视觉定位(VPS)能够轻松地在现实世界中实现高精度的定位和增强现实体验。二、Immersal是如何工作的?Imme......