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 变量定义和变量替换的方法
Jul 30 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
PHP扩展开发入门教程
Feb 26 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php实现aes加密类分享
2014/02/16 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
js获取页面description的方法
2015/05/21 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
webpack4实现不同的导出类型
2019/04/09 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
银行职员工作失误检讨书
2014/10/14 职场文书
教师工作态度自我评价
2015/03/05 职场文书
钱学森观后感
2015/06/04 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server