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 之 没有mysql支持时的替代方案
Oct 09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP 上传文件的方法(类)
Jul 30 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
Mar 13 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
提高php编程效率技巧
Aug 13 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
PHP 微信支付类 demo
Nov 30 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
PHP生成图片验证码功能示例
Jan 12 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
提取HTML标签
2006/10/09 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
php递归json类实例
2014/12/02 PHP
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
django实现用户登陆功能详解
2017/12/11 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
黄继光的英雄事迹材料
2014/02/13 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
运动会表扬稿
2015/01/16 职场文书
司考复习计划
2015/01/19 职场文书
小学运动会通讯稿
2015/07/18 职场文书