我们新增Dark Mode(暗模式),(只是在晚上)可以改变MAC OS&Windows系统的暗模式实现切换;安卓和苹果手机是一样的。
日志随笔

PHP curl调用图灵机器人,无须appkeys

gyue2345·2017-08-02·76 次阅读··

   2017-08-02 20:03 LJY2345    抢沙发   隐藏边栏   黑色模式    76 
   评分 0 次,平均分 0.0    抢沙发   隐藏边栏   黑色模式

打开http://www.tuling123.com/experience/exp_virtual_robot.jhtml?nav=expPHP curl调用图灵机器人,无须appkeys我每发送一条消息,机器人回复的时候就会请求http://www.tuling123.com/api/product_exper/chat.jhtml,说明这个就是接口

现在我们也模拟传包到这个服务器响应地址,如果没有按照它规定的user_id的值,多半会出问题,
比如这里的userid,缺少它,机器人会不知道你上一句话说的内容是什么,就不能达到连续对话的效果了。

我们可以查看网页的源代码,查找userid是否存在,userid格式类似表单。

然后,我们要做的是,把这个userid获取下来,并存入$_SESSION['chart_id']变量,用正则表达式取出来userid就好了。

window.localStorage.setItem("_userid", '57a2413c-1f19-4e74-fgff-0b79d041e81d');

 

<?php
session_start();
/*
* @Name     图灵机器人
* @Function 图灵机器人API
* @Author   云天河Blog
* @Link     http://www.hlzblog.top/
* @date     2016-9-26 19:35:44
*/
class TuLing_Robot{
	/**
	* @param String $get_unique_uid 通过此网址 可获取与用户 一对一的临时对话 UID
	* @param String $to_api     图灵机器人的实现接口,它会返回XML
	* @param String $form_data  格式化用户消息后的 传给图灵服务器的信息
	*/
	private $get_unique_uid="https://www.ljy2345.com/go/aHR0cDovL3d3dy50dWxpbmcxMjMuY29tL2V4cGVyaWVuY2UvZXhwX3ZpcnR1YWxfcm9ib3Quamh0bWw/bmF2PWV4cA==" target="_blank";
	private $to_api="http://www.tuling123.com/api/product_exper/chat.jhtml";
	private $form_data;
	/**
	 *析构函数
	 * @param  String $say 用户输入数据
     * @return void
	*/
	public function __construct($say="云天河Blog,你知道吗?"){
		$this->get_char_id();
		$this->post_data($say);
	}
	/*
	*获取机器人与用户的对话的userid,通过正则表达式即可获取
	* @param $_SESSION['chat_id'] 机器人与用户对话所用的唯一的临时ID
	* @return void
	*/
	public function get_char_id(){
		//如果用户还没有临时对话变量,则注册一个 $_SESSION['char_id']
		if( !isset($_SESSION['chat_id']) ){
			$ch = curl_init();    //开启curl连接
			curl_setopt($ch, CURLOPT_URL, $this->get_unique_uid);    //写入url
			curl_setopt($ch, CURLOPT_HEADER, 0);    //是否有写入头信息需要写入=>false
			curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);//返回字符串,而不直接输出
			$content = curl_exec($ch);    //执行curl,并把结果返回给一个字符串
			curl_close($ch);    //关闭curl连接
			//通过正则表达式提取出与机器人对话的userid
			$reg="/setItem\(\"\_userid\", \'([^\']+)/i";
			preg_match($reg,$content,$match);
			$content=null;//用完了抓取页面的临时变量,就立马释放掉。
			$_SESSION['chat_id']=$match[1];
			$match=null;
		}
		
	}
	/**
	*POST方式获取数据过程,并将XML解析为对象后,获取机器人发给用户的消息
	* @param boolean $https https协议相关, 默认false
	* @param method $method curl链接方式,默认POST
	* @param String @data 格式化后的传入服务器的数据;
	* @return String 机器人发给用户的消息
	*/
	public function curl_request($https = false, $method = 'POST', $data = null){
		$data=$this->form_data;
		//请求 URL,返回该 URL 的内容 
		$ch = curl_init(); // 初始化curl
		curl_setopt($ch, CURLOPT_URL, $this->to_api); //设置访问的 URL
		curl_setopt($ch, CURLOPT_HEADER, false); //放弃 URL 的头信息
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而不直接输出
		if($https){ //判断是否是使用 https 协议
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不做服务器的验证
			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  //做服务器的证书验证
		}
		if($method == 'POST'){ //是否是 POST 请求
			curl_setopt($ch, CURLOPT_POST, true); //设置为 POST 请求
			curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //设置POST的请求数据
		}
		$content = curl_exec($ch); //开始访问指定URL
		curl_close($ch);//关闭 cURL 释放资源
		$XML_Obj=simplexml_load_string($content, 'SimpleXMLElement', LIBXML_NOCDATA);
		return $XML_Obj->Content;
	}
	/**
	*格式化用户输入的数据参数
	* @param String $say 用户输入的聊天消息
	*/
	public function post_data($say){
		$say=urlencode($say);//因为要通过post传值,所以转码中文内容为,url传值格式
		$this->form_data="info=".$say."&userid=".$_SESSION['chat_id'];
	}
}

/**
*对了,那个服务器返回数据的样式,见下
<xml>
<ToUserName><![CDATA[27d7f9f2-106c-47e0-be2d-be44abaf9118]]></ToUserName>
<FromUserName><![CDATA[toUser]]></FromUserName>
<CreateTime>1474882713061</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[赌大10]]></Content>
<FuncFlag>0</FuncFlag>
</xml>
*/

@$info=$_GET['content'];//通过GET方式传入聊天信息
$ac_info=new TuLing_Robot($info);
echo $ac_info->curl_request();//输出机器人的话
?>

调用方式?content=内容PHP curl调用图灵机器人,无须appkeys

赞赏
博 主作者: 关注:6    粉丝:1最后编辑于:2017年8月2日
LJY IT BLOG的站长。

扫一扫打赏

支付宝扫一扫打赏

微信扫一扫打赏

view comments - NOTHING
🌙
😃

切换注册
忘记密码 ?

×

您也可以使用第三方帐号快捷登录

切换登录

×
扫一扫二维码分享
下载海报
  切换主题 | SCHEME TOOL