首页 > 帮助文档首页 > 百度OAuth > REST API > 概述

概述

<sidebar>sidebar:oauth_menu<sidebar>

简介

通过百度开放平台提供的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。