腾讯通信云服务端使用心得,腾讯云IM
腾讯通信云服务端使用心得
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的更多相关文章
- Flex通信-Java服务端通信实例
转自:http://blessht.iteye.com/blog/1132934Flex与Java通信的方式有很多种,比较常用的有以下方式: WebService:一种跨语言的在线服务,只要用特定语言 ...
- Socket通信时服务端无响应,客户端超时设置
背景:在写一个客户端的socket程序,服务端没有返回消息,客户端一直在等待. 目标:我需要设置一个时间,如果超过这个时间客户端自动断开连接.最好是在服务端实现,客户端对我来说不可控.
- SaaS加速器 III 技术中心:提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现
https://yq.aliyun.com/articles/695746 演讲主题:SaaS加速器 III技术中心:聚合开放 高效强大 技术中心定义:阿里云以聚合开放的姿势,提供一个高效强大的技术开 ...
- 提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现
摘要: SaaS加速器的技术中心能力中,将提供SaaS Launchkit,快速定制,一云多端等能力,加速应用上云迁移.降低应用开发和定制的门槛,提升效率.其中非常关键的一云多端能力将通过小程序云实现 ...
- Laravel框架使用融云服务端SDK
方法一: 使用第三方依赖安装(在项目根目录) 第一步:安装 composer require latrell/rongcloud dev-master 第二步:更新依赖包 c ...
- Go语言中Socket通信TCP服务端
1.用法: (1)定义远程IP地址.使用net.ResolveTCPAddr()方法,定义一个TCP地址,做为本机监听地址. (2)使用net.ListenTCP("tcp",lo ...
- vs2017编译网狐荣耀服务端的心得
1.找不到d3dx9.h 从D:\Microsoft DirectX SDK (June 2010)\Include复制 d3dx9.hd3dx9anim.hd3dx9core.hd3dx9effec ...
- 成功使Linux服务端和Windows客户端建立socket通信
一.准备工作 1.一台装有虚拟机的Windows7操作系统,虚拟机中装的是CentOS6.5版本的Linux 2.Windows7已经装有java环境 二.编码 使用java编写socket通信的服务 ...
- java基于socket的网络通信,实现一个服务端多个客户端的群聊,传输文件功能,界面使用Swing
最近在复习java的io流及网络编程.但复习写那些样板程序总是乏味的.便准备写个项目来巩固.想来想去还是聊天项目比较好玩.如果日后完成的比较好自己也可以用(哈哈哈).并且自己后面也要继续巩固java多 ...
随机推荐
- 从壹开始前后端分离 [.netCore 填坑 ] 三十三║ ⅖ 种方法实现完美跨域
缘起 哈喽大家周四好,趁着大家在团建的时候花一个下午学点儿东西,也是督促大家学习哟,希望大家看到老张的文章,可以有一丢丢的学习动力.不过话说过来,该吃的团建还是要去的,不能学我呀 [ /(ㄒoㄒ)/~ ...
- Solr 13 - 在URL地址栏中操作Solr集群 - 包括CRUD、别名、切割分片、更新配置
目录 1 创建操作 1.1 创建collection 1.2 创建core 1.3 创建操作中的参数 2 删除操作 3 加载操作 4 查看操作 5 操作集合别名(操作成功, 但未查出区别) 6 切割分 ...
- 『练手』005 Laura.SqlForever历史遗留 的 架构思想缺陷
005 Laura.SqlForever历史遗留 的 架构思想缺陷 我们 比较一下 Laura.WinFramework 和 Laura.XtraFramework 的差异: Laura.WinFra ...
- 网络学习笔记(二):TCP可靠传输原理
TCP数据段作为IP数据报的数据部分来传输的,IP层提供尽最大努力服务,却不保证数据可靠传输.TCP想要提供可靠传输,需要采取一定的措施来让不可靠的传输信道提供可靠传输服务.比如:出现差错时,让发 ...
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- java 并发多线程显式锁概念简介 什么是显式锁 多线程下篇(一)
目前对于同步,仅仅介绍了一个关键字synchronized,可以用于保证线程同步的原子性.可见性.有序性 对于synchronized关键字,对于静态方法默认是以该类的class对象作为锁,对于实例方 ...
- 玩转Spring Cloud之配置中心(config server &config client)
本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1.2.svn方式 1.3.本地文件方式 1.4.解决配置中包含中文内容返回乱码问题 二.搭建配置消费客户端( ...
- 数据结构——Java实现单链表
一.分析 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点由元素和指针构成.在Java中,我们可以将单链表定义成一个类,单链表的基 ...
- h5页面 video暂停播放 视频控件 以及当前页面只有一个可以播放效果
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- React-组件的生命周期详解(含React16版本)
在一个组件的整个生命周期中,通过用户的交互来更新state或者props,重新渲染组件,更新页面的ui.组成一个简单的"状态机". react的生命周期三个阶段: Mounting ...