前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云通信IM - 第三方回调简单接收配置

云通信IM - 第三方回调简单接收配置

原创
作者头像
liyao
修改2021-02-21 18:48:58
2.1K0
修改2021-02-21 18:48:58
举报
文章被收录于专栏:腾讯云云通信专家服务

前言:

为了更好的管理和控制App,IM提供了第三方回调功能,配置使用后,即时通信IM会向App后台服务器发送请求,App后台可以根据收到的回调处理业务逻辑、数据处理存储、功能控制干预,比如禁止该消息下发、用户登录状态的实时变更等。即时通信 IM 目前支持的回调请参见 回调命令列表

配置回调:

1.准备一台云服务器,并放通443、80、9000端口,安装nginx服务、PHP环境

云服务器放通的端口
云服务器放通的端口

2.登录IM控制台,回调配置里配置回调url设置事件回调

回调url配置
回调url配置

回调地址必须是可以ping通的地址,且域名中不能使用下划线_,如果没有域名备案可以使用外网IP地址作为域名配置。 双向认证的目的是只能从即时通信IM后台回调访问,无法通过客户端或浏览器直接访问。 如何关闭回调:1.取消所有回调事件;2.更改回调地址,配置成无法接收的地址。

4.下载HTTPS双向认证证书、CA 证书,并将下载的Crt、Key、CA证书本地文件上传至服务器。Nginx双向认证文档

5.修改 nginx.conf 配置文件

代码语言:txt
复制
    server {
        listen       443 default_server;
        listen       [::]:443 default_server;
        server_name  XX.XX.XX.XX;				# 域名或外网IP地址
        ssl_certificate        XX.XX.XX.XX.crt; # 腾讯给第三方签发的证书
        ssl_certificate_key    XX.XX.XX.XX.key; # 和证书配对的私钥
        ssl_verify_client on; # 验证请求来源
        ssl_client_certificate TencentQQAuthCA.crt; # 腾讯认证的 CA 证书

        location / {
          root /var/html/;
          index  index.html index.htm callback.php;
        }

    }

    server {
        listen 80;
        server_name            XX.XX.XX.XX; # 域名或外网IP地址
        error_log /var/log/nginx/callback_error.log error;

        root /var/html/;
      location / {
        index  index.html index.htm callback.php;
      }

      location ~ \.php$ {
             fastcgi_pass   127.0.0.1:9000;
          fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
       }
    }

可以不配置双向认证,不配置也可以收到回调请求,双向认证只是为了更安全。 不配置双向认证取消ssl_verify_client on; ssl_client_certificate TencentQQAuthCA.crt; 即可。

6.在/var/html/路径下配置接收回调的PHP文件,并在同文件夹下创建callback.log文件用于保存收到的回调信息

代码语言:txt
复制
<!DOCTYPE HTML>
<html>
<body>
<?php

		$json = file_get_contents("php://input");
		$data = json_decode($json, true);
		if($data){
        	$callback_file = fopen("callback.log", "a+") or die("open_file_error!");
        	fwrite($callback_file,var_export($data,true));
        	fwrite($callback_file, "\n================================================\n");
        	fclose($callback_file);
		}else{
    		echo 'Hello Word!';
		}

?>
</body>
</html>

测试验证回调:

使用Rest Api或客户端发消息验证是否可以收到回调(此处以单聊消息为例)

代码语言:txt
复制
array (
  'MsgBody' => 
  array (
    0 => 
    array (
      'MsgType' => 'TIMTextElem', // 消息类型
      'MsgContent' => 
      array (
        'Text' => '测试是否可以收到单聊消息',// 消息内容
      ),
    ),
  ),
  'CallbackCommand' => 'C2C.CallbackBeforeSendMsg', // 回调事件类型
  'From_Account' => 'liyao',	// 发送方userid
  'To_Account' => 'test3',		// 接收方userid
  'MsgRandom' => 1156579512,	// 消息随机数
  'MsgSeq' => 17649,			// 消息ID
  'MsgTime' => 1613897890,		// 消息发送时间
  'MsgKey' => '17649_1156579512_1613897890', // 消息唯一标识
)

1.触发场景:

通过客户端发送单聊消息

通过Rest Api发送单发单聊消息

Rest Api 批量发单聊消息不会触发单聊回调

2. 可实现的功能:

可以通过该回调实时监控用户的单聊消息(记录日志等)

拦截用户的单聊发言请求(业务侧自行实现安全打击功能)

修改发言内容(例如过滤敏感词)

如果同时配置发言前回调和发言后回调,并且通过发言前回调禁止发言,则此时不会收到发言后回调

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 配置回调:
    • 1.准备一台云服务器,并放通443、80、9000端口,安装nginx服务、PHP环境
      • 2.登录IM控制台,回调配置里配置回调url设置事件回调
        • 4.下载HTTPS双向认证证书、CA 证书,并将下载的Crt、Key、CA证书本地文件上传至服务器。Nginx双向认证文档
          • 5.修改 nginx.conf 配置文件
            • 6.在/var/html/路径下配置接收回调的PHP文件,并在同文件夹下创建callback.log文件用于保存收到的回调信息
            • 测试验证回调:
              • 1.触发场景:
                • 2. 可实现的功能:
                相关产品与服务
                即时通信 IM
                即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持 Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、好友与资料、消息漫游、群组管理、会话管理、直播弹幕、内容审核和推送等能力。适用于直播互动、电商带货、客服咨询、社交沟通、企业办公、互动游戏、医疗健康等场景。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档