<?php
    //---------------------------------聊天小机器人类-----------------------------------------------
    class Robot{

/*
        *小黄鸡聊天机器人
        *@param  para  输入的数据
        *return  true=>小黄鸡返回的数据  
        *         false=>返回一条最近一次cURL操作明确的文本的错误信息
        */
        public function xiaohuangji($para){
            $url = "http://www.xiaohuangji.com/ajax.php";
            //初始化curl
            $ch = curl_init();
            //设置请求url网址
            curl_setopt($ch, CURLOPT_URL, $url);
            //捕获url响应信息以文件流形式返回,不直接输出
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            //设置请求头信息,启用时会将头文件的信息作为数据流输出。
            curl_setopt($ch, CURLOPT_HEADER, 0);
            //设置传输post数组
            $data = array(
                'para' => $para
                );
            //设置开启post请求
            curl_setopt($ch, CURLOPT_POST, 1);
            //传输参数值
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            //执行curl
            $output = curl_exec($ch);
            //关闭句柄
            curl_close($ch);
            if($output === false){
                return false;
            }
            return $output;
        }
        /*
        *小i机器人
        *@param userId 用户id
        *@param 向小i机器人提出的问题
        */
        public function xiaoi($userId, $question){
            header('Content-type:text/html;charset=utf-8');
            //生成签名
            $app_key="ptOUo2U8STxD";
            $app_secret="RkIKyErH0w6wVTyv1nHT";
            $realm = "xiaoi.com";
            $method = "POST";
            $uri = "/robot/ask.do";
            $nonce="";
            $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
            for ( $i = 0; $i < 40; $i++)
                $nonce .= $chars[ mt_rand(0, strlen($chars) - 1) ];
            $HA1 = sha1($app_key . ":" . $realm . ":" . $app_secret);
            $HA2 = sha1($method . ":" . $uri);
            $sign = sha1($HA1 . ":" . $nonce . ":" . $HA2);

$url = "http://nlp.xiaoi.com/robot/ask.do";

$userId = urlencode($userId);
            $question = urldecode($question);

//初始化curl
            $ch = curl_init();
            //设置请求url网址
            curl_setopt($ch, CURLOPT_URL, $url);
            //捕获url响应信息以文件流形式返回,不直接输出
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            //设置请求头信息,启用时会将头文件的信息作为数据流输出。
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Auth:app_key="'.$app_key.'",nonce="'.$nonce.'",signature="'.$sign.'"'));
            
            //设置开启post请求
            curl_setopt($ch, CURLOPT_POST, 1);
            //传输参数值
            curl_setopt($ch, CURLOPT_POSTFIELDS, "question=".$question."&userId=".$userId);
            //执行curl
            $output = curl_exec($ch);

//关闭句柄
            curl_close($ch);
            if($output === false){
                return false;
            }
            return $output;
        }
    }
    //--------------------------------------测试区------------------------------------
    /*
    $robot = new Robot();
    echo $robot->xiaohuangji("你是男的还是女的");
    */
    //$robot = new Robot();
    //echo $robot->xiaoi("aa", "你有病啊!");

小黄鸡机器人和小I机器人的调用的更多相关文章

  1. Simsimi 小黄鸡机器人最新无限制接口api simsimi机器人接口api 微信公众号

    一.什么是Simsimi? simsimi公司是提供智能服务,其中一个服务是simsimi聊天机器人服务,每天有超过百万的用户聊天,国内最大的搜索引擎——百度的产品siri使用的就是simsimi提供 ...

  2. PIGCMS 关闭聊天机器人(小黄鸡)

    无脑操作举例 1.找到 WeixinAction.class.php 文件,路径: 你的版本\PigCms\Lib\Action\Home 2.查询 function chat ,在 chat() 函 ...

  3. C# Winfrom小黄鸡功能调用

    最近研究微信公众平台,搭建了一个微信聊天机器人,调用小黄鸡的公众接口,实现在线和小黄鸡聊天的功能. 接口调用不是很麻烦,不过是php版本,所以研究了一下C#的功能模块, Winfrom版 后台界面代码 ...

  4. 用java实现Simsimi小黄鸡接口

    package com.iask.webchat.chatmachine; import java.io.BufferedReader; import java.io.InputStream; imp ...

  5. qt调用simsimi api实现小黄鸡

    项目地址:https://github.com/racaljk/xiaojianji 好吧我把它命名为小贱鸡.,下面说一说他的实现. 由于官方的simsimi api需要收费,免费试用版有各种限制,所 ...

  6. [置顶] 几行代码实现ofo首页小黄人眼睛加速感应转动

    最新版的ofo 小黄车的首页小黄人眼睛随重力而转动,感觉有点炫酷,学习一下吧,以下代码是在xamarin android下实现 ofo首页效果图: xamarin android实现效果: 实现思路: ...

  7. 我的代码真的没有bug,稍等,先试试小黄鸭调试法

    今天测试同学为了赶进度,加班去测试我的功能. 因为我的代码都写完了,也没有陪测的必要,所以就没去了~ 下午第一个问题提过来,根据经验,这个应该是测试的逻辑问题,最后他自己也发现了. 过了一会,提了第二 ...

  8. 关于小黄车(ofo共享单车)使用的问题

    小黄车即ofo共享单车,号称是全球创立最早.成长最快.规模最大的无桩共享单车创业公司,缔造了"共享单车"概念,致力于解决城市出行问题.它的出现给大家带来了方便,作为一个商业运行的公 ...

  9. css3实现小黄人

    效果就像这样: 不废话,直接上代码! hrml代码: <!DOCTYPE html> <html> <head lang="zh"> <m ...

随机推荐

  1. PostgreSQL两种分页方法查询时间比较

    数据库中存了3000W条数据,两种分页查询测试时间 第一种 SELECT * FROM test_table WHERE i_id> limit 100; Time: 0.016s 第二种 SE ...

  2. 携程Android App的插件化和动态加载框架

    携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...

  3. LAV Filter 源代码分析 3: LAV Video (1)

    LAV Video 是使用很广泛的DirectShow Filter.它封装了FFMPEG中的libavcodec,支持十分广泛的视频格式的解码.在这里对其源代码进行详细的分析. LAV Video ...

  4. 解读Raft(三 安全性)

    前言 之前的两篇文章更多的是在描述Raft算法的正常流程,没有过多的去讨论异常场景. 而实际在分布式系统中,我们更多的都是在应对网络不可用.机器故障等异常场景,所以本篇来讨论一下Raft协议的安全性, ...

  5. 一个你不能错过的第三方.net集合库

    今天查找资料的时候,偶然发现了一个第三方的面向.net的集合类库,相比较FCL中的集合类,此第三方集合类库更全,最基本的Set数据结构在FCL里面是没有的,但是这个类库里面有,而且此类库的作者就是&l ...

  6. HTML DOM 实例

    DOMAnchor 对象 更改一个链接的文本.URL 以及 target 使用 focus() 和 blur() 向超链接添加快捷键 Document 对象 使用 document.write() 向 ...

  7. IBM RAD 快捷键

    Ctrl+1         快速修复(最经典的快捷键,就不用多说了) Ctrl+D:        删除当前行 Ctrl+Alt+↓    复制当前行到下一行(复制增加) Ctrl+Alt+↑    ...

  8. 我如何踏上IT路

    第一次开技术博客,第一篇博文就聊聊自己是如何走上IT这条路的.一直听人说"搞IT的"颇含贬低色彩,也有IT前辈奉劝不要轻易踏上这条路,但最终我这个本是化学化工专业的门外汉还是义无反 ...

  9. 运行Applet程序

    [操作方法1:]① 编辑源程序welcome.java.② 编译程序 javac welcome.java③ 将Applet嵌入HTML网页.方法是,用记事本创建一个文件,文件内容如下:<app ...

  10. Day17 Django的基础使用和结构

    整个Django的访问流程: 浏览器 urls: http://127.0.0.1:8000/timer url.py: 1, http://127.0.0.1:8000/timer GET 无请求数 ...