PHP如何进行接口开发?探索CURL的秘密

最近这两周忙着写公众号后台开发和小程序,好几天没有更博客了,想了下还是得总结一下,公众号开发我虽然只学了四天,但是已经把基本常用的十几个接口结合TP5都实现了一遍了,感觉并没有什么难度,说白了就是面向接口的开发,照着开发文档提供的接口获取数据,进行整理罢了,

主要是对CURL的应用,大多数phper是不会对这个陌生的, 本篇文章我主要说下如何使用CURL来调用图灵机器人的接口和微信公众号开发的接口,其他接口也可以类比,大致是一样的。好了,开始探索吧!

1、什么是CURL?

CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容,我们通过CURL进行信息采集,模拟登陆,接口开发等等,

2、如何使用CURL?

CURL有两种请求方式,一种是GET,另一种是POST,两种方式的代码有一点点的小差别,具体看如下说明:

2.1使用get方式请求

访问结果是:

很明显我们已经获取到百度首页网页的header和HTML内容了。实际上用上的函数就那么几个:

1)curl_init() 初始化句柄

2)curl_setopt() 设置参数

3)curl_exec() 提交

4)curl_close() 释放句柄

看起来是不是很简单呢?那curl_setopt()有哪些参数呢?我们可以具体看看手册:http://php.net/manual/zh/function.curl-setopt.php

2.1使用POST方式请求

使用post的方式请求其实跟get很像,不过使用post会传一些必要的参数,大多是json或者XML,我们只要在上面代码的基础上加几行代码就好了。如下:

这里我就不展示了,后面用图灵的时候我会进行展示。

3、使用CURL来接入图灵机器人接口中的天气接口3.1、获取图灵机器人的apikey

这是使用api的一把钥匙,如果你没有注册的话就先去注册一下,然后创建个机器人,就能找到对应的apikey了,不要问我为啥不用百度的apistore,因为它已经崩了,新用户都不给接待。如果你照我的做应该能找到这个页面:

3.2、查看接口文档

用别人的接口,得知道怎么用吧,当然是要看别人的接口文档啦。例如图灵API-2.0的文档是这样的

我们可以看到api的使用方式了,这里的查询请求方式是用的HTTP POST,也就是上面的第三种,请求方式是json,那么我们可以这么写:

访问结果是:

那么我们只要红框的内容,就只要把var_dump那一句改为var_dump($res['results'][0]["values"]['text']);就行了,如下:

每次都用同样的操作,代码就会很冗余啊,所以我自己简单封装了一下:

如上,我们只要需要使用时只需要直接调用这个方法即可,传进需要的参数,这里我不是用接口的方式写的,只是单纯的简单封装而已,所以没有什么errorcode返回,也没有身份验证。也没有使用try..catch的方式。

4、将上面的结合公众号后台开发使用

如果你对公众号后台开发没什么经验的话,看到这里就可以停了,上代码:

这是用户回复的一个模板,我使用了没有封装curl的的那种。实际上你只给每次微信服务器对你的web服务器请求的时候就调用一次即可。如果有对应的类似,"广州的天气","北京的天气怎么样啊"这些信息都可以。因为我是判断你是问天气的然后把你的原话转发给图灵机器人的接口的,

当然这里的判断我用的比较水,不过只要你问的不是以天气开头就能进入,应该能满足大多数公司的要求,或者你用正则来模糊匹配,然后图灵机器人分析处理后把回应信息发到我的服务器,我进行整理后响应给微信服务器,微信服务器再将回应从公众号发给用户。

测试号的结果如下:

很明显,发送原话不仅仅可以查询当天的天气情况。而且对你的话格式要求也不严格。图灵机器人还提供了很多接口,例如查快递,昨天我就在小程序中添加了快递查询功能,不过不足的是它只支持圆通和中通的快递,无论什么接口,使用的方式大致是一样的,顶多有些有验证身份的就麻烦一些而已,不过原理都是一样的。

需要代码的直接点击原文连接到博客获取

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180428G0TNBG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券