宅男宅女福利--智能聊天(一)

前言

晚上寂寞的时候,没有女朋友怎么办?没有男朋友的又怎么度过每月的14号情人节。上陌陌约炮去?还不如自己做个懂我的智能聊天应用–你的寂寞好助手:)
说干就干吧!


百度了一下,目前智能聊天Api平台比较出名的有SimSimi和图灵机器人。SimSimi是需要收费的,因此我果断选择图灵机器人。图灵机器人账号的注册和创建都不需要我多说了,接着就是创建机器人了,点击个人中心->我的机器人->创建机器人->自定义,ok至此创建完毕。

接下来我们来构建我们的安卓应用。根据开发文档,我们知道发送请求是http post方式的,这就足够了。


第一步,导入包,配置build.gradle,添加相应的权限.
导入包应该不需要我详细说了吧,其余的可以查看图灵机器人的开发文档。这里我添加了第三方封装的http包。其实可以用我们之前学的volley框架来实现,但为了扩展大家的知识面,和更便捷的开发,这里就使用yangfuhai的afinal开源库框架。大家可以查看他的开发文档,是中文的哦!
好了废话不多说,进入代码模式。
在布局里放入一个button控件,点击事件我命名为ClickUp。接着就是进入主活动里进行编写啦。

//定义
    String talksomething="你好";//你要请求的数据
    JavaBean javaBean=new JavaBean();
    //返回的请求码的json格式的数据
    Bean100000 bean100000=new Bean100000();
    //返回码是100000的请求码的json格式的数据
    Bean200000 bean200000=new Bean200000();
    //返回值是200000的的请求码的json格式的数据
    Bean302000 bean302000=new Bean302000();
    //返回值是302000的的请求码的json格式的数据
    Bean308000 bean308000=new Bean308000();
    //返回值是308000的的请求码的json格式的数据

    Object c=new Object();//返回的json数据
    int AboutTalkingNumber;//返回的请求码

编写各类函数。

public class JavaBean {



    private int code;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

}
public class Bean100000 {
    /**
     * code : 100000
     * text : 你也好 嘻嘻
     */

    private int code;
    private String text;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

Bean200000.java、Bean302000.java、Bean308000.java和Bean100000.java差不多类似的,大家可以去看图灵机器人的开发文档,把json数据利用Gson进行解析。


发送请求功能的实现

    public void httppost(String s){
        String url="http://www.tuling123.com/openapi/api";
        //请求地址
        AjaxParams params=new AjaxParams();
        params.put("key","你的APIKey");//你的应用密钥
        params.put("info",s);//发送请求饿数据
        FinalHttp finalHttp=new FinalHttp();
        finalHttp.post(url, params, new AjaxCallBack() {
            @Override
            public void onSuccess(Object o) {
                c=o;//获得返回的json数据
                javaBean=GsonImpl.get().toObject(o.toString(),JavaBean.class);               
                 //解析返回的json数据
                AboutTalkingNumber=javaBean.getCode();
                //获取返回码
                BeanBean(AboutTalkingNumber);
                //根据返回码,解析各种类型的json数据
                Toast.makeText(MainActivity.this,talkText,Toast.LENGTH_LONG).show();
            }
        });
    }

上一步,我们提到了BeanBean函数
实现原理

    public void BeanBean(int i){
        switch(i){
            case 100000:
                bean100000=GsonImpl.get().toObject(c.toString(),Bean100000.class);
                talkText=bean100000.getText();
                break;
            case 200000:
            //类似bean100000,根据json数据自己编写
                break;
            case 302000:
            //类似bean100000,根据json数据自己编写
                break;
            case 308000:
            //类似bean100000,根据json数据自己编写
                break;
        }
    }

在点击事件ClickUp里调用httppost()函数;

httppost(talksomething);

至此,聊天机器人的功能大致实现了,但是还不够,怎么让界面更加好看呢?比如实现qq聊天界面的样子,我们下期再讲。

授人以鱼不如授人以渔,为了让大家有更多的思考空间,更好的挖掘自己的潜能,这里我就不发布源码了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值