一个简单的小黄鸡应用
2014-03-21 12:32
363 查看
人人的小黄鸡其实是调用了simsimi的接口,它的开发者是华中科技大学的一名学生wang2 ,作者把人人网小黄鸡的代码托管在Github上。可以看出,功能是很强大的,不单单是调个api的是,我简单看了下,python、shell、redis、消息队列都有用到。那么,怎样用最短的时间写一个自己的“小黄鸡”呢?
其实很简单,作者的gist上的一段代码 给出我们一个接口:http://www.simsimi.com/func/req?lc=ch&msg=%s ,通过这个接口,我们就可以调simsimi的智能回复了。
PHP实现起来非常简单,就是用CURL先请求下simsimi,得到cookie,然后利用保存的cookie再去请求接口,返回json,有个reponse的key,对应的value就是回复了。
代码:
有兴趣的朋友可以到我的网站玩玩~
其实很简单,作者的gist上的一段代码 给出我们一个接口:http://www.simsimi.com/func/req?lc=ch&msg=%s ,通过这个接口,我们就可以调simsimi的智能回复了。
PHP实现起来非常简单,就是用CURL先请求下simsimi,得到cookie,然后利用保存的cookie再去请求接口,返回json,有个reponse的key,对应的value就是回复了。
代码:
<?php error_reporting(E_ERROR); $msg = daddslashes($_GET['msg']); simsimi($msg); function simsimi($msg) { /*get cookie*/ $url = "http://www.simsimi.com/"; $ch = curl_init ( $url ); curl_setopt ( $ch, CURLOPT_HEADER, 1 ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); $content = curl_exec ( $ch ); $arr = explode ( "\r\n\r\n", $content ); $header = $arr[0]; $matches = $arr[1]; preg_match ( "/set\-cookie:([^\r\n]*);/iU", $header, $matches ); $cookie = $matches [1]; curl_close ( $ch ); /*get json response*/ $url = "http://www.simsimi.com/func/req?lc=ch&ft=0.0&msg=$msg"; $ch = curl_init ($url); curl_setopt ( $ch, CURLOPT_REFERER, "http://www.simsimi.com/talk.htm?lc=ch" ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch, CURLOPT_COOKIE, $cookie ); $content = json_decode ( curl_exec ( $ch ), 1 ); curl_close ( $ch ); if ($content ['result'] == '100') { $content ['response']; var_dump($content ['response']); } else { var_dump( 'nothing...'); } } function daddslashes($string, $force = 0) { !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc()); // if(!defined('MAGIC_QUOTES_GPC')) // define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc()); if(!MAGIC_QUOTES_GPC || $force) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = daddslashes($val, $force); } } else { $string = addslashes($string); } } return $string; } function dhtmlspecialchars($string) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = dhtmlspecialchars($val); } } else { $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', //$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string)); } return $string; } function http_get($url, $ref_url=NULL) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.81 Safari/537.36"); if ($ref_url) { curl_setopt($ch, CURLOPT_REFERER, $ref_url); } $data = curl_exec($ch); curl_close(); return $data; } ?>
有兴趣的朋友可以到我的网站玩玩~
相关文章推荐
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- Flex LCDS的一个简单应用--AgileShopping&amp;Management项目小结
- Hololens入门之使用Unity开发一个简单的应用
- JQuery入门―编写一个简单的JQuery应用案例
- 介绍一个简单的 GPS 应用软件开发包
- CardboardSDKForUnity 一个简单的VR应用
- 基于Apache Mina的一个简单应用
- 如何使用 CoreText 创建一个简单的杂志应用
- 基于Vue2.0+Vue-router构建一个简单的单页应用
- Spring Boot应用连接数据库MySQL、及一个简单的demo
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- 一个简单的新闻应用
- IOS第三十四天——一个简单的手电筒应用
- iOS开发UI篇—实现一个简单的手势解锁应用(基本)
- socket_一个简单应用_源代码
- 自己写的一个简单的LBS应用 GoogleMap与Tomcat 服务器
- 如何在OS X 10.7上开发一个简单的应用教程(一)
- simple-spa 一个简单的单页应用实例
- WInform 创建一个简单的WPF应用
- CoreText 使用教程:以创建一个简单的杂志应用为例