23.6  使用第三方接口服务实例

接供服务的第三方接口平台有很多,现在的项目中也经常用到一些第三方接口,如支付宝、微信、短信、邮件接口等,我们需要借助第三方的能力来实现产品的某些功能。如果自己已经掌握了实现开发接口的方法,应用第三方接口就比较容易了,它们都遵循RESTful风格API的原则,原理是相似的。本节我们来演示通过调用第三方接口获取天气信息,放到自己的网站上的方法。

23.6.1  查找API

用谁的接口,就需要到谁的平台上查找接口的使用文档。例如,想对微信公众平台的服务号进行二次开发,就需要用自己注册的服务号,登录微信公众平台的系统。设置成开发者权限,就可以查看公众平台提供的所有API说明。根据自己的业务需求,再找到对应的API去使用,从而完成开发目标。更多的第三方接口需求,也可以通过搜索引擎找到提供接口的平台。如APIStore(百度旗下)、易源数据、聚合数据等。

23.6.2  查看API文档说明

进入聚合数据平台,网址为https://www.juhe.cn。如果是第一次使用,需要先在该平台注册一个新的账号。聚合数据平台提供了生活常用、车辆服务、金融征信、位置服务、即时通信、应用开发等分类的各种接口。本节仅演示天气接口的使用,用于获取全国各地的天气情况。通过聚合数据平台的导航菜单,在生活常用栏目中找到天气预报接口文档,文档地址为https://www.juhe.cn/docs/api/id/39,如图23-13所示。

图23-13  全国天气预报数据接口文档

23.6.3  获取接口的key

通过查看文档我们可以看到有个参数 key,这个参数是必填项,用来生成签名进行安全验证。所以我们要先得到这个参数。进入平台的个人中心,通过导航菜单找到“数据中心”下的“我的数据”,如图23-14所示,页面上的“AppKey:3ff5814b0b64c3ee8afc9b2f6c844d75”就是我们需要的key。

图23-14  找到验证的key

有了参数“key=3ff5814b0b64c3ee8afc9b2f6c844d75”,如果想获取 “北京”的天气情况,可以设置参数“cityname=北京”,其他参数可以使用默认值。接口的请求使用get()方法,接口的地址为“http://v.juhe.cn/weather/index”,组合成一个完整的URL如下所示:

GET http://v.juhe.cn/weather/index?cityname=北京&key=3ff5814b0b64c3ee8afc9b2f6c844d75

请求后默认返回JSON格式数据,可以将URL直接复制到浏览的地址栏中,测试接口访问是否正确,执行后结果如图23-15所示。

图23-15  使用浏览器测试天气预报接口

23.6.4  使用 PHP 代码请求接口

在PHP程序中,可以使用自己封装的HTTP类中的get()方法,请求天气接口并处理返回数据。新建一个PHP文件weather.php,代码如下所示:

上例代码包含了获取支持城市列表、根据城市获取天气预报,包括3小时天气预报的实现和近一周的天气情况。示例代码主要解析了一些常用字段,如果需要完整的或其他未包含的字段,可以自行参考官方的接口进行修改,运行结果如图23-16所示。

图23-16  使用PHP处理天气接口返回结果

第三方接口平台上有很多比较实用的接口,都可以用同样的方法去试一试。

23.7  小结

本章必须掌握的知识点

Ø 接口的实现流程。

Ø 接口的请求访问流程。

Ø 按口的安全控制规范算法。

Ø RESTful风格API的原则和规范。

Ø 现实WebAPI框架的原理。

Ø 会使用第三方接口。

本章需要了解的内容

Ø 了解接口的几种实现方法。

Ø 接口的应用和优势。

本章需要拓展的内容

Ø 在自定的WebAPI框架中增加表goods的接口。

Ø 通过第三方接口实现支付功能。

Ø 对微信公众账号中的订阅号或服务器进行二次开发。

Ø 设计和开发一款自己的微信小程序。

《细说PHP》第四版 样章 第23章 自定义PHP接口规范 11的更多相关文章

  1. 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1

    <细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...

  2. 《java编程思想(第四版)》第一二章学习笔记

    目录 一.Introduction 1.抽象过程 2.面向对象语言(包括Java)的五个基本特性 3.每个对象都提供服务 4.public.private.protected三者的区别 5.Java的 ...

  3. 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 5

    2.5  如何学习PHP PHP以其简单易学的特点,以及敏捷开发的优势,从一个几乎不被人知的开源项目,慢慢成长为技术人员首选的动态Web设计工具,与其他语言相比,PHP表现得更好.更快.更简单易学.尽 ...

  4. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 9

    23.5.3  WebAPI框架应用 程序框架其实就是一个半成品项目,在应用框架时,核心的服务程序只应用,不需要改动.当然如果有必要,也可以根据项目的需要对框架进行二次开发.本节内容主要基于我们的框架 ...

  5. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 8

    23.5.2  架构详解 本例的实现最重要的就是服务层的设计,有两个配置文件config.php和api.php,其中文件config.php是全局的配置文件,用于整个程序全局需要的参数设置.可以根据 ...

  6. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 6

    23.4  API的设计原则和规范 API是服务提供方和使用方之间对接的通道,前面我们设计的一些简单API的例子,基本上比较随意,没有使用任何规范.设想一下,每个平台都可能存在大量的API,如果API ...

  7. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 3

    23.2  接口实现的基础 大家都很了解函数在本地应用,通过名称调用函数执行,并通过传递不同参数,函数有不同执行,执行后给调用者返回结果.如果把一个函数做成一个接口远程访问,也需要这几个步骤.使用HT ...

  8. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 1

    如今的项目开发中,接口是很普遍的应用技术.现在好多项目组都单独设有接口开发人员.像腾讯.微博.淘宝等开放平台,其所谓的开放,就是提供一些可调用的接口,用于获取相关的信息.例如,微信用户基本信息.淘宝店 ...

  9. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 12

    18.9  管理表books实例 在Web项目中,几乎所有模块都要和数据表打交道,而对表的管理无非就是增.删.改.查等操作,所以熟练掌握对表进行管理的这些常见操作是十分有必的.本例为了能更好地展示PD ...

随机推荐

  1. Win10锁屏壁纸位置

    C:\Users\MIS\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalStat ...

  2. 如何使用终端默认情况下阻止Mac应用保存到iCloud

    当您保存要在Mac上的Pages,Numbers,TextEdit或其他基于云的应用程序中处理的文档时,该保存的默认位置是iCloud.尽管这对某些人或某些文档来说可能是一件好事,但您可能会厌倦每次更 ...

  3. Mybatis----resultMap类型详解

    Mybatis----resultMap类型详解 这篇文章主要给大家介绍了关于Mybatis中强大的resultMap功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mybatis具 ...

  4. jvaa之初始化块

    1.初始化块的作用:对java对象进行初始化: 2.程序的执行顺序:声明成员变量的默认值-->显示初始化,多个初始化块依次被执行(同级别下按先后顺序执行)-->构造器在对成员进行赋值操作. ...

  5. SpringBoot入门(简单详细教程)

    Spring Boot 简介 简化Spring应用开发的一个框架:整个Spring技术栈的一个大整合:J2EE开发的一站式解决方案: 微服务 martin fowler:微服务:架构风格(服务微化): ...

  6. 【UR #5】怎样更有力气

    Problem Description 大力水手问禅师:"大师,很多事情都需要用很大力气才能完成,而我在吃了菠菜之后力气很大,于是就导致我现在非常依赖菠菜.我很讨厌我的现状,有没有办法少吃点 ...

  7. 面试:Stream#foreach方法摸底三问,你都了解吗

    JAVA8 新增了 Stream API,而在 Stream API 中又为程序员提供了一个遍历集合的 foreach 方法:java.util.stream.Stream#forEach. 那你对这 ...

  8. windows下cocos2d-x环境搭建

    该教程使用的cocos2dx的版本为3.14,3之后的大概都差不多 Python环境搭建: cocos2dx在windows上新建工程需要用到python脚本,安装python-2.7.x,可以上py ...

  9. C#函数(构造函数)的重载

    using System; namespace test { class Program { static void Main(string[] args) { Cat cat = new Cat() ...

  10. CSS学习笔记-边框图片等属性

      1.边框图片:        1.1含义:            告诉浏览器指定一张图片作为边框        1.2格式:             border-image-source:url ...