;

致力互动】提问: 关于api机器人的使用方法和优化?

案例: 4ad7.vt.iamh5.cn/v3/idea/rRZoWC7k


2 个回答

data

先贴案例:image.png

案例下载地址:http://www.ih5.cn/editor3/app/workCopy/5654147 


首先,说一下api组件的工作原理。

API组件在这里添加:

image.png

API组件的大致工作原理是这样的:

%3F%3F%3F%3F%3F.png

首先,api涉及到第三方服务器提供的服务,所以,第三方服务器是哪里来?

一般来说,我们会去调用一些公用的api服务,比如发送短信验证码,人脸识别等等,这些服务大多是按次收费的,所以我们必须先购买(也有一些免费的,但会有调用次数和频率的限制);另外,如果是企业用户,自己可能也会提供一些服务,比如验证某个用户是否已经在自己的平台上注册了,那这个验证的服务就是自己的服务器提供的,此时,需要后台工程师来配置一个验证的api服务,然后再使用iH5的api组件来调用。


我们这里的例子,主要是涉及公有的服务。

首先,贴几个提供公共api服务的平台:

        阿里云:market.aliyun.com

        聚合:www.juhe.cn

        百度:apistore.baidu.com

这些平台会提供一些免费或收费的api,大家可以上去看看。

在这个教程中,我们会使用阿里云和聚合平台的问答机器人api来作为例子。注意,一般来说,一个平台提供的api,格式大多是统一的,所以跑通一个平台的某个api后,这个平台上其他的api的调用方法也大致类似。


聚合平台的机器人:

我们首先来使用聚合的问答机器人,因为它的使用相对比较简单一些。

首先,找到这个问答机器人的api说明 https://www.juhe.cn/docs/api/id/112

(当你看到这篇问答的时候,这个链接可能会失效,如果失效的话,就去聚合平台搜一下)


接下来,我们要根据聚合平台的api信息,来创建我们的api组件。


在创建api组件的时候,需要两部分的信息:


一、基本信息

1.png


这部分信息,第1个我们随便填一个,第2和第3,可以在api的信息页面找到:

image.png

以上请求方式支持get或post,所以我们随便选一个就行,这里就选get,所以,填好之后,第一部分基本信息是这样的:

image.png


二、参数信息

%3F%3F%3F%3F%3F (1).png

参数这一块,我们需要继续向下寻找答案:

image.png

一般api都会给一个参数说明,所谓参数,就是你需要发送什么信息过去给这个api,比如,这个api有两个必填的参数,其他不是必须的,另外,最后还有一个比较重要的选填参数,userid,用来区分每个用户发送的不同的问题,这样可以保证每个用户可以获得一个相对连续的对话。方便起见,我们先不管另外两个非必填的参数,只是把必填的两个外加userid填进去。


注意,这个参数,是body的参数。(我们可以进一步去看示例代码来确定参数的发送方式,但一般来说,除了特别标注的header参数,其他都是body参数)

image.png

以上只要把“key”、“info”和“userid”三个信息填进去就好了,注意,info和userid是我们要发送给机器人的内容,可以不填默认值,key,建议还是填一下,这个key一般所有的api都有,是一个类似密码的存在,用来鉴别你是否用调用这个api的权限。在聚合平台上,这个key在这里找:

image.png

好了,我们的api已经配置好了。

接下来可以保存并测试一下:

API调试.gif


我们可以看到这个api已经有数据返回了,接下来,就是做案例了。


案例很简单,主要就是“发”和“收”两个事件:


1、让api发送请求,就是讲输入框里的内容,以及当前的用户ID发给这个机器人(当前用户ID,直接选系统.提交用户即可)

image.png

(顺便清除了输入框的数据方便再次输入);


2、当api收到消息的时候,把一个文本赋值为api返回的内容,就是机器人的回答。

这个设置,有些小讲究,我们上一个gif:

apidata.gif


最后一步,需要解释一下我,就是我们需要在返回结果后面加 “.result.text”, 这个是什么鬼??!!


这个其实是api的返回结果决定的,我们在api的文档中,可以看到一个示例的返回结果:

image.png

返回结果有一堆,但是我们需要用的,只是“text”里面的内容,而这个“text”是包含在“result”这个目录下的(我们用缩进来判断目录层级关系,比如,上面那个返回结果,第一层有三个目录:reason、result、error_code; 然后在result里面,又有“code”和“text”)所以,要找到返回结果里的“text”,我们需要加“.”, 就是"返回结果.result.text"。


基本上每个api,都会给一个返回结果的样例,我们只需要找到这个样例,然后用一层一层寻找的方法,就可以找到我们需要的信息了。


ok,这个就是聚合平台提供的api机器人的使用方法了。


阿里云平台的机器人


首先,经测试,阿里的机器人要明显笨一些,不过为了说明阿里云平台的使用方法,我们还是用这个问答机器人来做一个例子,介绍阿里系api的添加方法。


先贴阿里机器人的链接:https://market.aliyun.com/products/57124001/cmapi013943.html?spm=5176.730005-56956004.0.0.lpuGsj#sku=yuncode794300000  (这个链接可能会变,打不开了自己去搜一下不要打我)


image.png

这两个基本信息的填写,和之前的一样,就不多说了。


接下来,阿里平台有个特殊的设置,就是需要在header参数中填写app code,类似上面聚合平台的key:

image.png

在api调用那里,有一个身份认证方法,点进去,可以看到:

image.png

简单来说,就是我们需要在header参数中,来设置一个叫“Authorization”的参数,并按以上格式,把自己的appcode填进去。


这个设置完成之后,我们就可以去设置“question”参数了,这也是阿里的机器人提供的唯一的参数(为什么说这个机器人要笨一点呢,他是不会记住用户的,只能一问一答,完全没有对话感)

image.png


好,最后贴一下我们api的完成版:

image.png


以上header参数,是阿里云平台api的通用的方法,其他的api,也是使用这种方法来调用的。




ih5-创億设计-永恒

ih5提供了api调用接口的方法来链接第三方的一些服务,具体如何实现api接口链接,参阅http://help.ih5.cn/ih5帮助中心/是否可以实现短信验证码的功能?

学习地图