PHP实现RTX发送消息提醒的实例代码


Posted in PHP onJanuary 03, 2017

RTX是腾讯公司推出的企业级即时通信平台,大多数公司都在使用它,但是我们很多时候需要将自己系统或者产品的一些通知实时推送给RTX,这就需要用到RTX的服务端SDK,建议先去看看RTX的SDK开发文档(客户端,服务器),我们先看看功能效果:

PHP实现RTX发送消息提醒的实例代码 PHP实现RTX发送消息提醒的实例代码 PHP实现RTX发送消息提醒的实例代码                

当然,现在很多公司都已经在RTX的基础上升级成了企业微信,没关系,这个API同样可以使用,还是同样的接口,只是展示效果不一样而已:

PHP实现RTX发送消息提醒的实例代码

下面是用PHP实现RTX发送消息提醒:

1、首先在服务器端安装RTX的服务端和客户端,再安装SDK开发包(对于发送消息提醒的功能,只需要安装服务端sdk即可)(下载地址:http://rtx.tencent.com/rtx/download/index.shtml)

PHP实现RTX发送消息提醒的实例代码

2、然后再RTX服务器的安装路径下有个WebRoot文件夹,文件夹下有个SendNotify.cgi文件,这就是RTX发送消息的接口文件,打开文件是懂PHP的都能看懂的代码,不过需要在头部加入header头,以及需要处理一些参数的编码

header("Content-Type:text/html;charset=GBK");

 $msg = iconv("utf-", "GBK", $msg);
 $title = iconv("utf-", "GBK", $title);

如果你的所有安装都是在本地的,那么只需要访问(默认端口8012)即可:

 http://127.0.0.1:8012/SendNotify.cgi?msg=消息内容&receiver=RTX的账号(多个用逗号格开)&title=通知的标题

以下是修改后的SendNotify.cgi代码:

<?php
 /**
 * Created by PhpStorm.
 * User: Steven
 * Date: //
 * Time: :
 */
 
 header("Content-Type:text/html;charset=GBK");
 require_once "IPLimit.php";
 
 $receiver = $_GET["receiver"];
 $msg = $_GET["msg"];
 $title = $_GET["title"];
 
 
 $delaytime = $_GET["delaytime"];
 $okurl = $_GET["okurl"];
 $errurl = $_GET["errurl"];
 
 if ((strlen($receiver) == )
  && (strlen($msg) == )
  && (strlen($title) == )
  && (strlen($delaytime) == )
  && (strlen($okurl) == )
  && (strlen($errurl) == )
 ) {
  $receiver = $_POST["receiver"];
  $msg = $_POST["msg"];
  $title = $_POST["title"];
  $delaytime = $_POST["delaytime"];
  $okurl = $_POST["okurl"];
  $errurl = $_POST["errurl"];
 }
 
 if (strlen($receiver) == ) {
  $receiver = "";
 }
 if (strlen($msg) == ) {
  $msg = "";
 }
 if (strlen($title) == ) {
  $title = "";
 }
 if (strlen($delaytime) == ) {
  $delaytime = ;
 }
 if (strlen($okurl) == ) {
  $okurl = "";
 }
 if (strlen($errurl) == ) {
  $errurl = "";
 }
 
 $msg = iconv("utf-", "GBK", $msg);
 $title = iconv("utf-", "GBK", $title);
 $php_errormsg = NULL;
 
 $ObjApi = new COM("Rtxserver.rtxobj");
 $objProp = new COM("Rtxserver.collection");
 $Name = "ExtTools";
 $ObjApi->Name = $Name;
 
 $objProp->Add("msgInfo", $msg);
 $objProp->Add("MsgID", "");
 $objProp->Add("Type", "");
 $objProp->Add("AssType", "");
 if (strlen($title) == ) {
  $objProp->Add("Title", "֪ͨ");
 } else {
  $objProp->Add("Title", $title);
 }
 $objProp->Add("DelayTime", $delaytime);
 if (strtolower($receiver) == "all") {
  $objProp->Add("Username", $receiver);
  $objProp->Add("SendMode", "");
 } else {
  $objProp->Add("Username", $receiver);
 }
 
 
 $Result = @$ObjApi->Call(x, $objProp);
 
 $errstr = $php_errormsg;
 if (strcmp($nullstr, $errstr) == ) {
  if (strlen($okurl) > ) {
   header("Location: " . $okurl);
  } else {
   // echo "<script language=\"JavaScript\">\r\n";
   // echo "alert(\"success\")";
   //echo "</script>\r\n";
   return true;
 
  }
 } else {
  //send err
  if (strlen($errurl) > ) {
   header("Location: " . $errurl);
  } else {
   echo $errstr . "<br>";
 
  }
 }
 ?>

3、需要注意的是代码中引入了IPLimit.php文件,所以,访问的时候可能会提示IP受限,这就需要在RTX服务端安装文件下找到一个叫SDKProperty.xml的文件,加入你发送请求的服务器IP保存即可

<?xml version="."?>
 <Property>
 <APIClient>
  <IPLimit Enabled="">
   <IP>...</IP>
     <IP>这里是IP地址</IP>
  </IPLimit>
 
 </APIClient>
 <sdkhttp>
  <IPLimit Enabled="">
  </IPLimit>
 </sdkhttp>
 </Property>

4、开发者只需要封装一个发送GET或者POST的方法,例如:

$arr = array(
    'title' => $title, //消息的标题
    'receiver' => $receiver_list, //消息的接受者
    'msg' => $msg,//消息内容
   );
   $this->httpsPost('http://...:/SendNotify.cgi', $arr);

即可向RTX发送消息通知,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP面向对象编程快速入门
Dec 14 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
关于crontab的使用详解
Jun 24 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
Yii分页用法实例详解
Dec 04 PHP
php数组添加元素方法小结
Dec 20 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
php cookie用户登录的详解及实例代码
Jan 03 #PHP
详解PHP安装mysql.so扩展的方法
Dec 31 #PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 #PHP
PHP文件操作详解
Dec 30 #PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 #PHP
CI框架实现框架前后端分离的方法详解
Dec 30 #PHP
php mysql实现mysql_select_db选择数据库
Dec 30 #PHP
You might like
PHP写MySQL数据 实现代码
2009/06/15 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
Django实现的自定义访问日志模块示例
2017/06/23 Python
python的多重继承的理解
2017/08/06 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
浅谈django 重载str 方法
2020/05/19 Python
python小白切忌乱用表达式
2020/05/29 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
大学生优秀自荐信范文
2014/02/25 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL