所在的位置: python >> python发展 >> PythonPython和API读取

PythonPython和API读取

北京知名荨麻疹医院 http://disease.39.net/bjzkbdfyy/220324/10490515.html

Python和API:读取公共数据的成功组合-第二篇

学习高级API概念

既然您已经很好地了解了使用Python进行API消费的基础知识,那么即使是简要介绍一下,也有一些更高级的主题值得探讨,例如身份验证,分页和速率限制。

验证

API身份验证可能是本教程涵盖的最复杂的主题。即使许多公共API是免费的并且是完全公共的,但在某种形式的身份验证之后仍可以使用更多的API。

身份验证方法的范围从简单到直接(例如使用API密钥或基本身份验证的方法)到更为复杂和安全的技术(例如OAuth)。

通常,在没有凭据或凭据错误的情况下调用API会返回Unauthorized或Forbidden状态代码。

API密钥

身份验证最常见的级别是API密钥。这些密钥用于将您标志为API用户或客户,并跟踪您对API的使用。API密钥通常作为请求标头或查询参数发送。

NASA的API:一个公开可用的API最酷的收藏品是由提供的一个美国航空航天局。您可以找到API来获取当天的天文学图片或由地球多色成像相机(EPIC)拍摄的图片。

对于此示例,您将使用NASA的MarsRoverPhotoAPI,并获取年7月1日拍摄的照片。出于测试目的,您可以使用

DEMO_KEYNASA默认提供的API密钥。否则,您可以转到NASA的主API页面并点击入门,快速生成自己的文档。您可以通过附加api_key=查询参数将API密钥添加到您的请求中:

到目前为止,一切都很好。您设法向NASA的API发出了经过身份验证的请求,并获得了OK响应。现在看一下该Response对象,并尝试从中提取一些图片:

通过.json()将响应转换为Python字典,然后photos从响应中获取字段,您可以遍历所有Photo对象,甚至获取特定照片的图像URL。如果您在浏览器中打开该URL,那么您会看到以下由火星漫游者之一拍摄的火星图片:

在此示例中,您从响应字典中选择了特定earth_date(-07-01),然后选择了特定照片(4)。继续前进之前,请尝试更改日期或从其他相机获取照片,以查看其如何改变最终结果。

OAuth:入门

API身份验证中的另一个非常常见的标准是OAuth。在本教程中,您将仅学习OAuth的基本知识,因为它是一个非常广泛的主题。

即使您不知道它是OAuth的一部分,您也可能多次查看和使用OAuth流。每当应用或平台具有“登录方式”或“继续方式”选项时,这就是OAuth流的起点:

如果您单击“继续使用Facebook”,将分步介绍以下内容:

Spotify应用程序将要求FacebookAPI启动身份验证流程。为此,Spotify应用程序将在成功或错误后发送其应用程序ID(client_id)和URL(redirect_uri)来重定向用户。您将被重定向到Facebook网站,并要求使用您的凭据登录。Spotify应用程序将看不到或无法访问这些凭据。这是OAuth最重要的好处。Facebook将向您显示Spotify应用程序从您的个人资料中请求的所有数据,并要求您接受或拒绝共享这些数据。如果您接受授予Spotify访问数据的权限,那么您将被重定向回已登录的Spotify应用。在执行步骤4时,Facebook将为Spotify提供一个特殊的凭证(access_token),该凭证可重复用于获取您的信息。这个特定的Facebook登陆令牌有效期为60天,但其他应用程序的有效期可能不同。如果您感到好奇,那么Facebook会有一个设置页面,您可以检查该页面以查看哪些应用程序已获得您的Facebook访问令牌。

现在,从更技术的角度来看,以下是使用OAuth使用API时需要了解的事项:

您需要创建一个具有ID(app_id或client_id)和密钥(app_secret或client_secret)的应用程序。您需要有一个重定向URL(redirect_uri),API将使用该URL向您发送信息。身份验证的结果将得到一个代码,您需要将其交换为访问令牌。上面有一些变体,但通常来说,大多数OAuth流将具有与这些相似的步骤。

提示:在进行测试时,需要某种重定向URL来获取code,可以使用名为


转载请注明:http://www.aierlanlan.com/tzrz/2613.html

  • 上一篇文章:
  •   
  • 下一篇文章: