腾讯通信服务端使用心得

1.腾讯通信服务入口并创建应用

  方便使用保留url地址 :   https://cloud.tencent.com/product/im

  注册账号腾讯云账号->通过审核->创建应用

  *  创建应用完成后点击应用配置,帐号体系集成(配置完毕之后就可以进行接口接入的准备工作了)

  

2.接口接入准备工作

  将应用配置中的基础配置写到独立文件中简单保存

  

  提取SdkAppId,管理员账号(APP管理账号)在项目中需要使用

  

3. APP管理员帐号生成usersig

  3.1 下载tls后台api (其中有生成usersig的demo)

    下载地址:https://share.weiyun.com/2b3abe0e3f185c440cf455647455f661(腾讯云通信官方提供)

    

    

    解压tls_sig_api-windows-64.zip压缩文件

    

    

      

    1.将D:/tls_sig_api-windows-64/php/TLSSig.php文件放置自己项目中(生成usersig类文件)

    2.将在第二部分接入准备工作中提到的验证方式文件解压后放置项目根目录

         

  3.2 PHP调用TLSSig工具类生成usersig

/**
* 创建UserSig
*
* @param $Txy_identifier 管理员账号(APP管理账号)在第一部分账号体系中有提到
*/
public function createUserSig($Txy_identifier='admin'){ //调用TLSSig工具类并实例化
$api = new \Org\TLSSig\TLSSig(); $api->SetAppid(C("Txy_sdkappid")); //private_key账号体系中下载的私钥
$private = file_get_contents('./keys/private_key'); $api->SetPrivateKey($private); //public_key账号体系中下载的公钥
$public = file_get_contents('./keys/public_key'); $api->SetPublicKey($public); $sig = $api->genSig($Txy_identifier); return $sig;
} echo $this->createUserSig();

  到此处接口准备工作已准备完成

4.接口接入部分

  4.1 创建接口公共类   

    说明:公共类继承与thinkphp3.2.2 

<?php 

namespace Interface_1_1_6\Controller;
use Think\Controller; /**
* 腾讯云通信REST API
* @author chengyujia <chengyujia1228@163.com>
*/
class TxyController extends CommonController { /**
* 创建UserSig
* @param $username 用户账号
*/
public function createUserSig($Txy_identifier){ if(!$Txy_identifier){
$Txy_identifier = C("Txy_identifier");
} $api = new \Org\TLSSig\TLSSig();
$api->SetAppid(C("Txy_sdkappid"));
$private = file_get_contents('./keys/private_key');
$api->SetPrivateKey($private);
$public = file_get_contents('./keys/public_key');
$api->SetPublicKey($public);
$sig = $api->genSig($Txy_identifier); return $sig;
} /**
* 腾讯云通信公共接口
* @param array $options['Nick'] 昵称
* @param array $options['FaceUrl'] 头像url
* @param str $Interface 腾讯接口地址例如(registration_service/register_account_v1)
*/
public function interfaces($options,$Interface){ $usersig = $this->createUserSig(); $optionStr = "usersig=".$usersig."&identifier=".C("Txy_identifier")."&sdkappid=".C("Txy_sdkappid")."&random=".$this->returnRandom()."&contenttype=json"; $url = "https://console.tim.qq.com/v4/".$Interface."?".$optionStr; $result = $this->postCurl ( $url, $options); $info = json_decode($result,true);
$info['usersig'] = $usersig; return $info; } /**
* CURL Post发送数据
*
* @param $url 地址
* @param $option 参数数据
* @param $header 消息头
* @param $type 发送方式
*/
private function postCurl($url, $option, $header = 0, $type = 'POST') {
$curl = curl_init (); // 启动一个CURL会话
curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE ); // 对认证证书来源的检查
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE ); // 从证书中检查SSL加密算法是否存在
curl_setopt ( $curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模拟用户使用的浏览器
if (! empty ( $option )) {
$options = json_encode ( $option );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $options ); // Post提交的数据包
}
curl_setopt ( $curl, CURLOPT_TIMEOUT, 30 ); // 设置超时限制防止死循环
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回
curl_setopt ( $curl, CURLOPT_CUSTOMREQUEST, $type );
$result = curl_exec ( $curl ); // 执行操作 curl_close ( $curl ); // 关闭CURL会话
return $result;
} /**
* 返回随机数
*/
public function returnRandom(){
return rand("111111111","999999999");
} }
?>

  4.2 调用接口进行注册

    

     $options['Identifier'] = 'zhangsan';
$options['IdentifierType'] = 3;
$options['Password'] = '123456'; //腾讯云注册账号
$register_account_res = $this->interfaces($options,'registration_service/register_account_v1');

   

  要忙工作了先到这里,有问题请留言,小弟才疏学浅,有错的地方请大家提出,我给予改成

腾讯通信云服务端使用心得,腾讯云IM的更多相关文章

  1. Flex通信-Java服务端通信实例

    转自:http://blessht.iteye.com/blog/1132934Flex与Java通信的方式有很多种,比较常用的有以下方式: WebService:一种跨语言的在线服务,只要用特定语言 ...

  2. Socket通信时服务端无响应,客户端超时设置

    背景:在写一个客户端的socket程序,服务端没有返回消息,客户端一直在等待. 目标:我需要设置一个时间,如果超过这个时间客户端自动断开连接.最好是在服务端实现,客户端对我来说不可控.

  3. SaaS加速器 III 技术中心:提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现

    https://yq.aliyun.com/articles/695746 演讲主题:SaaS加速器 III技术中心:聚合开放 高效强大 技术中心定义:阿里云以聚合开放的姿势,提供一个高效强大的技术开 ...

  4. 提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现

    摘要: SaaS加速器的技术中心能力中,将提供SaaS Launchkit,快速定制,一云多端等能力,加速应用上云迁移.降低应用开发和定制的门槛,提升效率.其中非常关键的一云多端能力将通过小程序云实现 ...

  5. Laravel框架使用融云服务端SDK

    方法一:  使用第三方依赖安装(在项目根目录) 第一步:安装        composer require latrell/rongcloud dev-master 第二步:更新依赖包      c ...

  6. Go语言中Socket通信TCP服务端

    1.用法: (1)定义远程IP地址.使用net.ResolveTCPAddr()方法,定义一个TCP地址,做为本机监听地址. (2)使用net.ListenTCP("tcp",lo ...

  7. vs2017编译网狐荣耀服务端的心得

    1.找不到d3dx9.h 从D:\Microsoft DirectX SDK (June 2010)\Include复制 d3dx9.hd3dx9anim.hd3dx9core.hd3dx9effec ...

  8. 成功使Linux服务端和Windows客户端建立socket通信

    一.准备工作 1.一台装有虚拟机的Windows7操作系统,虚拟机中装的是CentOS6.5版本的Linux 2.Windows7已经装有java环境 二.编码 使用java编写socket通信的服务 ...

  9. java基于socket的网络通信,实现一个服务端多个客户端的群聊,传输文件功能,界面使用Swing

    最近在复习java的io流及网络编程.但复习写那些样板程序总是乏味的.便准备写个项目来巩固.想来想去还是聊天项目比较好玩.如果日后完成的比较好自己也可以用(哈哈哈).并且自己后面也要继续巩固java多 ...

随机推荐

  1. VS2013 百度云资源以及密钥

    https://pan.baidu.com/s/1eu3XycWO8fWItmkFeYNv9w提取码:dy9r 密钥:BWG7X-J98B3-W34RT-33B3R-JVYW9 vs2015 http ...

  2. 如何接入银联“快速接入”产品API

    引言:使用银联开放平台的用户或多或少都接触过产品API吧,那么大家对于“快速接入”产品API是否还会存在一些疑问呢?因为我之前对“快速接入”模糊不清,所以整理的一份详细的资料,里面梳理了“快速接入”产 ...

  3. HTML之常用标签及属性

    标签 标签分类 标签名 英文 英文含义 标签类型 备注 HTML页面结构 < html> HyperText Markup Language 超文本标记语言 < head> h ...

  4. 面试官: 说说看, 什么是 Hook (钩子) 线程以及应用场景?

    文章首发自个人微信号: 小哈学Java 个人网站地址: https://www.exception.site/java-concurrency/java-concurrency-hook-thread ...

  5. Got permission denied while trying to connect to the Docker daemon socket at

    添加新用户后执行docker命令由于没权限出现以下报错: ”Got permission denied while trying to connect to the Docker daemon soc ...

  6. 并发系列(4)之 AbstractQueuedSynchronizer 源码分析

    本文将主要讲述 AbstractQueuedSynchronizer 的内部结构和实现逻辑,在看本文之前最好先了解一下 CLH 队列锁,AbstractQueuedSynchronizer 就是根据 ...

  7. 陪你解读Spring Batch(一)Spring Batch介绍

    前言 整个章节由浅入深了解Spring Batch,让你掌握批处理利器.面对大批量数据毫无惧色.本章只做介绍,后面章节有代码示例.好了,接下来是我们的主角Spring Batch. 1.1 背景介绍 ...

  8. RAID磁盘阵列及CentOS7系统启动流程(week2_day3)--技术流ken

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...

  9. webservice创建、部署和调用

    webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 下面通过一个简单的例子来创建一个webservice,用的是vs2010开发工具 首先创建一个web应用程序 接着我们添 ...

  10. android 资源

    在进行APP开发的过程当中,会用到许多资源,比如:图片,字符串等.现对android资源知识进行简单记录. 具体的详细信息及用法,点击查看官方文档 分类      一般android资源分为可直接访问 ...