一、什么是Simsimi?

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

你可以在网址http://www.simsimi.com/talk.htm# 进行体验

SimSimi inc. is specialized in collective intelligence service. All kinds of services we provide generates unique entertainment and values through systemized collective intelligence.

One of our services, a chatting robot SimSimi exceeds the limitation of technology of natural-language processing system by collective intelligence and it has a chat with over millions user per day. Our Premium knowledge providing service “Jisikman” creates millions of valuable knowledges a day.

We invite you to our realm of service which is available through our cloud of collective intelligence, Crowd Cloud that SimSimi inc. creates.

二、Simsimi小黄鸡API

在 去年的这个时候,小黄鸡的非官方api一度被大家疯狂的在微信公众号上使用,一时间不知道成就了多少微信营销号,同时,华科某位大四学生利用这个api, 结合人人网开发平台,制作了一个小黄鸡的人人号,@小黄鸡之后,就可以利用api自动进行回复,是的这个人人号瞬间粉丝陡增。

然而大家使用的都是非官方的API,所谓非官方,就是不是simsimi公司提供的合法使用途径,API大致的原理是利用编程语言,模拟浏览器发送post请求到http://www.simsimi.com/talk.htm# 链 接,解析响应,然后作成相关的小黄鸡API。这个方法后来被我在本博客中在博文中发布,导致使用人数激增,simsimi公司似乎察觉了什么,立马对这种 模拟请求的方式做出了屏蔽,一旦某ip请求数量和频率超过限制,则终端对它的请求。正式官方对非法API的封锁,也使用国内的开发这关注到之前并不出名的 小i机器人,同样使用语言模拟请求web聊天界面,时间没有过很久,这个页面就加入了图片验证码防止程序模拟。

至此,两个聊天机器人都走上了收费的道路...准确的说,应该是被这帮子开发者赶上了收费的道路,因为他们给它带来了知名度。

三、SimsimiAPI使用

目前,小黄鸡API已经公然收费(http://developer.simsimi.com/api)

不过,和之前一样,会给注册用户提供30天的试用API。

API请求链接为:

Trial-key    http://sandbox.api.simsimi.com/request.p

Paid-key    http://api.simsimi.com/request.p

API请求参数为:

Parameter Value Required Default Description
key String Y   Your key value
text String Y   Query message
lc String Y   Language code(List)
ft Double(0.0 ~ 1.0)   0.0 可以设置一个过滤器
0.0:未过滤(包含诅咒,性内容)
1.0:过滤不文明字句(暂时只支持韩文)
过滤内容,请访问下面的网站。 
https://www.webpurify.com/

API返回格式为:

result:100-ok. 400-Bad Request. 401-Unauthorized. 404-Not found. 500-Server Error.    返回的code

id:Response id. (you can get only if returning result is 100)回复的id,由系统生成,当请求成功返回时才有这个字段。

response:Response message(you can get only if returning result is 100)返回的回复内容。

msg:Result  msg(Description of result code) 返回的code对应的含义

四、Simsimi使用举例

请求举例:

Trial-key    http://sandbox.api.simsimi.com/request.p?key=your_trial_key&lc=en&ft=1.0&text=hi

Paid-key    http://api.simsimi.com/request.p?key=your_paid_key&lc=en&ft=1.0&text=hi

响应举例:

{ "result": 100, "response": "Who are you?!", "id": 13185569, "msg": "OK." }

五、如何免费的使用Simsimi API

我想,大家都懂了,写这篇文章的原因就是很多人搜索小黄鸡 api到我的博客,我想大家都是要找免费的小黄鸡API。这里提供给大家一个思路:

合作伙伴中,有人人网,为什么?本博文前面提高某大四学生做了一个人人号,@小黄鸡之后,会自动进行回复,他使用的就是simsimi的官方正版付费API,既然人人网提供开发平台,可以对帐号进行回复,获得回复等等操作,为什么不能使用程序,登录帐号,然后@小黄鸡,然后获得它的回复,再返回给你自己的用户呢?答案当然是可以的!!!

下面贴出一段可供参考的Java代码,之所以为仅供参考,就是说只能参考思路,代码运行是运行不起来的!!!

如果能够帮助到你,希望回复点评一下,你懂的...

 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import java.o.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
/**
 * 利用httpclient操作人人网 比如登陆,发状态,模拟你访问任何人主页等等
 * @author: http://50vip.com
 
 */
public class RenRen {
    private String userName = "";
    private String password = "";
     
    private static String redirectURL = "http://www.renren.com/home";
    private static String renRenLoginURL = "http://www.renren.com/PLogin.do";
    private static String talkUrl = "http://photo.renren.com/photo/simsimiWebPagerChat";
    private HttpResponse response;
    private DefaultHttpClient httpclient = null;
    private String requestToken = null;
    private String _rtk = null;
     
    public RenRen(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }
     
    public static void main(String[] args) {
        RenRen rr = null;
        rr = new RenRen("xxxxx@hotmail.com""yyyyy");
        rr.login();
        System.out.println(rr.talk("820"));
    }
    /**
     * 登陆
     * @author: http://50vip.com
     * @return
     */
    public boolean login() {
        if (httpclient != null) {
            return true;
        }
        httpclient = null;
        httpclient = new DefaultHttpClient();
        HttpPost httpost = new HttpPost(renRenLoginURL);
        // All the parameters post to the web site
        List<NameValuePair> nvps = new ArrayList<NameValuePair>();
        nvps.add(new BasicNameValuePair("origURL", redirectURL));
        nvps.add(new BasicNameValuePair("domain""renren.com"));
        nvps.add(new BasicNameValuePair("autoLogin""true"));
        nvps.add(new BasicNameValuePair("formName"""));
        nvps.add(new BasicNameValuePair("method"""));
        nvps.add(new BasicNameValuePair("submit""登录"));
        nvps.add(new BasicNameValuePair("email", userName));
        nvps.add(new BasicNameValuePair("password", password));
        try {
            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
            response = httpclient.execute(httpost);
            //System.out.println(response);
            catch (Exception e) {
            e.printStackTrace();
            return false;
        finally {
            httpost.abort();
        }
         
        String redirectLocation = getRedirectLocation();
        if (redirectLocation != null) {
            // 跳到首页,登录完成
            String indexHtml=getText(redirectLocation);
             
            //获取requestToken get_check:'-2062261917'
            Pattern pattern1 = Pattern.compile("get_check:'(.*)',get_check_x");
            Matcher m1 = pattern1.matcher(indexHtml);
            if (m1.find()) {
            requestToken=m1.group(1);
            else {
            System.out.println("获取requestToken失败!");
            }
             
            //"获取_rtk失败!"get_check_x:'50d55fbd'
            Pattern pattern2 = Pattern.compile("get_check_x:'(.*)',env:");
            Matcher m2 = pattern2.matcher(indexHtml);
            if (m2.find()) {
                _rtk=m2.group(1);
            else {
                System.out.println("获取_rtk失败!");
            }
        }
        return true;
    }
     
    /**
     * 和人人的小黄鸡交谈
     * @author: http://50vip.com
     * @param msg
     * @return
     */
    public String talk(String msg) {
        String repMsg="";//小黄的回复
         
        HttpPost httpost = new HttpPost(talkUrl);
        // All the parameters post to the web site
        List<NameValuePair> nvps = new ArrayList<NameValuePair>();
        nvps.add(new BasicNameValuePair("_rtk", _rtk));
        nvps.add(new BasicNameValuePair("requestToken", requestToken));
        nvps.add(new BasicNameValuePair("message", msg));
         
        try {
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
            repMsg=httpclient.execute(httpost, responseHandler);
        catch (Exception e) {
            e.printStackTrace();
        finally {
            httpost.abort();
        }
        return repMsg;
    }
     
    /**
     * 此处人人网会302跳转
     * @author: http://50vip.com
     * @return
     */
    private String getRedirectLocation() {
        Header locationHeader = response.getFirstHeader("Location");
        if (locationHeader == null) {
            return null;
        }
        return locationHeader.getValue();
    }
     
    /**
     * 读取首页内容
     * @author: http://50vip.com
     * @param redirectLocation
     * @return
     */
    private String getText(String redirectLocation) {
        HttpGet httpget = new HttpGet(redirectLocation);
        // Create a response handler
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String responseBody = "";
        try {
            responseBody = httpclient.execute(httpget, responseHandler);
        catch (Exception e) {
            e.printStackTrace();
            responseBody = null;
        finally {
            httpget.abort();
        }
        return responseBody;
    }
}

Simsimi 小黄鸡机器人最新无限制接口api simsimi机器人接口api 微信公众号的更多相关文章

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

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

  2. 微信公众号通过图片选取接口上传到阿里oss

    前言 之前写过一篇微信JS-SDK的使用方法,可进行参考 https://www.cnblogs.com/fozero/p/10256862.html 配置并调用公众号接口权限 1.配置权限微信公众号 ...

  3. 小黄鸡机器人和小I机器人的调用

    <?php    //---------------------------------聊天小机器人类---------------------------------------------- ...

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

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

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

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

  6. 小机器人自动回复(python,可扩展开发微信公众号的小机器人)

    api来之图灵机器人.我们都知道微信公众号可以有自动回复,我们先用python脚本编写一个简单的自动回复的脚本,利用图灵机器人的api. http://www.tuling123.com/help/h ...

  7. 使用web api开发微信公众号,调用图灵机器人接口(二)

    此文将分两篇讲解,主要分为以下几步 签名校验; 首次提交验证申请; 接收消息; 被动响应消息(返回XML); 映射图灵消息及微信消息; 此篇为第二篇. 被动响应消息(返回XML) 上一篇中,我们已经可 ...

  8. 使用web api开发微信公众号,调用图灵机器人接口(一)

    此文将分两篇讲解,主要分为以下几步 签名校验; 首次提交验证申请; 接收消息; 被动响应消息(返回XML); 映射图灵消息及微信消息; 其实图灵机器人搭载微信公众号很简单,只需要把图灵的地址配到公众后 ...

  9. 微信公众号开发C#系列-4、获取接口调用凭证

    概述 获取接口调用凭证实质就是获取access_token.在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒 ...

随机推荐

  1. 88个 Linux 系统管理员必备的监控工具

    随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...

  2. angular学习笔记(三十)-指令(8)-scope

    本篇讲解指令的scope属性: scope属性值可以有三种: 一.scope:false 默认值,这种情况下,指令的作用域就是指令元素当前所在的作用域. 二.scope:true 创建一个继承了父作用 ...

  3. linux怎么关闭iptables linux如何关闭防火墙

    Linux系统下面自带了防火墙iptables,iptables可以设置很多安全规则.但是如果配置错误很容易导致各种网络问题,那么如果要关闭禁用防火墙怎么操作呢,咗嚛本经验以centos系统为例演示如 ...

  4. (原创)谈谈boost.asio的异步发送

    在上一篇博文中提到asio的异步发送稍微复杂一点,有必要单独拿出来说说.asio异步发送复杂的地方在于: 不能连续调用异步发送接口async_write,因为async_write内部是不断调用asy ...

  5. PLSA及EM算法

    前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...

  6. Android Manifest <meta-data>

    在接入第三方渠道SDK的时候,经常会看到其配置文件AndroidManifest.xml有类似如下的定义: <!-- appid --> <meta-data android:nam ...

  7. 【Linux技术】linux库文件编写·入门

    一.为什么要使用库文件 我们在实际编程中肯定会遇到这种情况:有几个项目里有一些函数模块的功能相同,实现代码也相同,也是我们所说的重复代码.比如,很多项目里都有一个用户验证的功能. 代码段如下: //U ...

  8. 【ARM】ARM程序规范

    1.函数名单词之间用_隔开,每一个字母大写      Uart_Printf()    //这个由三星的TEST风格延续下来,因此没有参数时,必须加void,否则ADS会编译报警    void Te ...

  9. Android下基于SDL的位图渲染(一)

    环境准备 安装Android开发环境(java.android-sdk.android ndk.gcc). 我使用的ndk版本是r10b/r10d,在win10/ubutu 15.04编译 下载sdl ...

  10. idea linux 启动权限不足的问题

    修改 ideaproject 下所有文件  chmod -R 777 文件  递归修改文件权限