概述
目录 |
简介
通过百度开放平台提供的REST API,第三方应用可以获取到百度用户的用户资料、好友关系等基本信息,以及今后百度开放的其他任何数据,但前提是应用必须获得到百度开放平台和百度用户的授权。
开放API接口调用方式
百度开放平台提供的所有开放API的调用都是通过向百度开放平台的REST服务器发送HTTPS请求来实现的。大多数API都支持使用POST和GET两种方法发送HTTPS请求,但因为Web Server对于请求URL的长度一般都是有限制的,因此对于一些提交类的接口(如上传图片、发表文章等),我们会有选择地只支持POST方法。另外,REST服务端还支持gzip压缩,可有效降低网络开销,建议第三方应用都加入gzip支持。
发送请求调用开放API之前,建议对所有参数字段进行url encode。
通过HTTPS请求调用开放API
通过HTTPS协议发送开放API调用请求时只需要在请求API对应的URL地址时,通过GET参数或POST参数传递具体开放API接口的业务级参数及下表中的几个系统级参数:
参数名 | 参数类型 | 是否必需 | 描述 |
---|---|---|---|
access_token | string | 是 | OAuth2.0验证授权后获得的token。 |
callback | string | 否 | 第三方通过JS调用开放API时可以通过指定callback参数来要求平台端返回JSONP代码,以解决跨域问题。 |
通过HTTPS请求调用开放API示例
假设应用通过OAuth2.0协议获取Access Token时,授权服务器返回的JSON内容为:
{ "access_token": "1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328", "expires_in": 86400, "refresh_token": "2.385d55f8615fdfd9edb7c4b5ebdc3e39.604800.1293440400-2346678-124328", "scope": "basic email", "session_key": "9XNNXe66zOlSassjSKD5gry9BiN61IUEi8IpJmjBwvU07RXP0J3c4GnhZR3GKhMHa1A=", "session_secret": "27e1be4fdcaa83d7f61c489994ff6ed6", }
当前系统时间为2011-06-21 17:18:09,要求以json格式返回API调用结果,则应用既可以通过GET方法发送如下请求包来调用获取当前登录用户的基本资料的开放API接口:
GET https://openapi.baidu.com/rest/2.0/passport/users/getInfo?access_token=1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328 HTTP/1.1 Host: openapi.baidu.com User-Agent: Client of Baidu Open Platform Accept: */* Accept-Encoding: gzip,deflate Accept-Charset: utf-8 Connection: close
也可以通过POST方法发送如下请求包,来获取开放API调用的响应结果。
POST https://openapi.baidu.com/rest/2.0/passport/users/getInfo HTTP/1.1 Host: openapi.baidu.com User-Agent: Client of Baidu Open Platform Accept: */* Accept-Encoding: gzip,deflate Accept-Charset: utf-8 Content-Length: 91 Connection: close access_token=1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328
开放API调用的响应结果
正常响应结果
请参考每个具体开放API的详细说明文档。
异常响应结果
由于每个API调用都是通过发送HTTP请求或HTTPS来完成的,因此都有可能因为发送的参数不合法、发送频率过快次数过多、平台REST服务自身出问题等原因而导致API调用失败,此时百度REST服务器将按照format参数所指定的响应格式返回相应错误信息,包含如下参数:
- error_code: 错误码,查看所有错误码定义请参考[常见错误码说明];
- error_msg: 对调用失败原因的描述。
开放API调用的响应结果示例
以调用获取当前登录用户基本资料的API接口为例,假设通过https请求发送API调用请求时所传递的access_token已经过期。 则将返回如下格式的错误信息:
{ "error_code": "110", "error_msg": "Access token invalid or no longer valid", }
开放API 参数的编码
- 传入的参数,其编码必须是UTF-8。
- 响应结果的编码是UTF-8。