




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、百度知道open api接口规范文档v1.0 百度知道open api接口规范文档v1.0系统名称百度知道open api服务接口项目负责人作者耿艳坤文档提交日期2010-08-26百度在线网络技术(北京)有限公司(版权所有,翻版必究)百度在线网络技术(北京)有限公司 - 1 -百度知道open api接口规范文档v1.0 修改记录no修改后版本号修改内容简介修改日期修改人11.0百度知道open api服务接口2010-08-26耿艳坤目 录the table of contents is empty because none of the paragraph styles selected
2、 in the document inspector are used in the document.百度在线网络技术(北京)有限公司 - 3 -d19fd6147f20c4569cad89e88a27fba1.pdf 1 背景本文旨在为第三方合作站点应用访问百度知道开放服务提供统一的http接口调用与交互规范。本文中描述的规范包括百度知道问题列表查询接口、检索查询接口、提问接口和回答接口。2 规范适用对象说明本规范仅适用于由服务器端发起调用请求、post提交数据以及get请求文本数据结果的open api。3 名词解释l 百度知道: l api
3、key:注册api合作时由百度的open api平台分配的唯一标识一个应用的字符串,又称应用公钥l api secret:注册api合作时由百度的open api平台分配的应用密钥,用于平台与合作站点之间通信时的参数签名4 请求数据包格式规范4.1 url按照百度open api规范,百度知道open api提供如下rest风格的http接口:/restserver/zhidao?query_stringquery_string由系统级参数部分和具体open api调用参数部分组成,以key1=value&key2=value2&表示,对于
4、采用post请求的open api,query_string部分则是在post请求体里。所有查询类的open api接口既支持post,也支持get方式,提交类的open api接口仅支持post方式。4.2 参数4.2.1 系统级参数以下参数是由百度open api平台系统定义的,百度知道需要支持这些参数以便接入该平台提供开放接口。百度知道采用应用授权认证接口方式,合作初始百度知道代第三方站点申请应用分配api_key和参数签名密钥api_secret。表格 41 api系统级参数参数名类型是否必需描述api_keystring是注册应用时分配到的api keymethodstring是采取
5、baidu.zhidao.getquestionlist这样的命名空间方式制定方法名call_iduint是时间戳,系统时间的秒值,同个应用的不同api请求的time值应该是递增的, 用于防replay攻击formatstring否响应包格式,可以是xml(默认)或jsoniestring否api调用请求包的编码类型,支持utf-8和gbkbd_sigstring是参数签名,对bd_sig外所有参数串的签名,包括业务级的参数。4.2.2 业务级参数的通用约定百度知道遵守百度open api规范中业务级通用参数的约定。表格 42 业务级参数的通用约定参数名类型描述page_noint用于支持分页
6、的api,默认为1,表示第几页page_sizeint用于支持分页的api,表示每页返回多少条数据,默认以及上限为254.2.3 参数签名算法参数签名生成算法采取如下方式(php版),其它语言根据注释描述完成等同功能:/param_array是key-value形式的参数数组,不包括api_secret密钥本身/secret是合作申请成功后分配的api_secret密钥function generate_sig($param_array, $secret) $str = ;/对param_array中的参数名称进行升序排序ksort($param_array);/按照如下格式转换数组为stri
7、ng格式foreach ($param_array as $k=$v) $str .= $k=$v;/string末端补充api_secret密钥$str .= $secret;/生成md5为最终的数据签名return md5($str);注:密钥是百度知道分配给第三方应用的secret_key,该算法返回的结果便是系统级参数中的bd_sig。5 响应数据包格式规范响应数据包的格式由调用时传递的format参数指定(默认为xml格式),无论是xml格式还是json格式,输出内容都是utf-8格式。目前,百度知道目前支持xml、json格式。5.1 xml输出格式l 文档编码格式utf-8l 接
8、口的返回数据中,数组对应的xml节点包含list=”true”属性,其子节点的标签名跟对应的数据有联系,并且同个数组内的同级节点的标签名一致。例如表示问题标题列表对应的xml输出可能为:l 接口的返回数据中,对象类型和普通数据类型数据(string,int,double,bool)对应的xml节点不包含list属性或者list属性值为false,节点标签名具有实际意义,与数据所描述的信息相符。例如,表示问题的数据对应的xml输出为:!cdata/question/133295964.html!cdata如题,百度大厦地址在5.2 json输出格式ap
9、i调用时如果传递format参数为json(大小写不敏感),则正常响应包符合如下规范的json字符串:l http响应头中的content-type指定为application/json, charset=utf-8l 字符串编码格式是utf-8字符串内容是xml输出数据所对应的php数组的标准json字符串5.3 错误响应输出格式错误响应输出内容符合以下规范:l 返回内容由error_code, error_msg, request_args这3个属性组成,分别用于描述错误码,错误信息,以及调用open api时所传递的所有参数的信息。l request_args属性是一个数组,由n个包含k
10、ey和value属性的对象组成例如,假设第三方应用调用baidu.zhidao.getquestionlist接口时传递的参数api_key无效,则其对应的xml格式的错误响应包为如下格式:101invalid api keyjson格式的字符串内容是xml输出数据所对应的php数组的标准json字符串6 错误码定义百度开放知道open api调用过程中可能会返回的错误码定义如下表所示:error_codeerror_msgdescription0success成功1unknown error未知错误2service temporarily unavailable后端服务暂时不可用3unsup
11、ported openapi methodopen api接口不被支持4open api request limit reached应用对open api接口的调用请求数达到上限5unauthorized client ip address:%sopen api调用端的ip未被授权100invalid parameter参数无效或缺失101invalid api keyapi key无效103invalid call_id parametercall_id参数无效或已被使用过104incorrect signature签名无效105too many parameters参数过多106unsup
12、ported signature method参数签名算法未被平台所支持200no permission to access data没有权限访问数据900no such application exists应用不存在12001parameters format error必选参数格式错误12002answer for invalid question提交回答的问题生命已结束7 api接口细则以下接口返回数据均是以xml格式为demo,json格式的字符串内容是xml输出数据所对应的php数组的标准json字符串。7.1 baidu.zhidao.getquestionlist7.1.1 功能
13、基于百度知道分类id获取对应分类下的问题列表url demo:/restserver/zhidao?api_key=20000&method=baidu.zhidao.getquestionlist &call_id=1276418994&format=xml&bd_sig=sig-result&cid=249&qstatus=0&page_no=2&page_size=257.1.2 参数参数名类型描述4.2.1 系统级参数全体4.2.2 业务级参数全体cidint百度知道的分类idqstatusint问题状态 0为待解决 1为已解决7.
14、1.3 返回值l response xml 示例l response xml 标签说明标签名描述id问题idurl该问题在百度知道的urltitle问题标题content提问内容cid该问题在百度知道所属的分类idcname该问题在百度知道所属的分类名称7.2 baidu.zhidao.getquestionsearch7.2.1 功能基于检索关键字在百度知道中搜索匹配的问题列表url demo:/restserver/zhidao?api_key=20000&method=baidu.zhidao.getquestionsearch&ca
15、ll_id=12764994&format=xml&bd_sig=sig-result&keywords=北京+百度大厦&qstatus=0&page_no=2&page_size=257.2.2 参数参数名类型描述4.2.1 系统级参数全体4.2.2 业务级参数全体keywordsstring检索关键字 多个检索关键字之间使用+号连接qstatusint问题状态 0为待解决 1为已解决7.2.3 返回值l response xml 示例l response xml 标签说明标签名描述id问题idurl该问题在百度知道的urltitle问题标题content提问内容cid该问题在百度知道所属的
16、分类idcname该问题在百度知道所属的分类名称7.3 baidu.zhidao.getquestioninfo7.3.1 功能基于百度知道问题id获取对应问题的数据以及回答url demo:/restserver/zhidao?api_key=20000&method=baidu.zhidao.getquestioninfo &call_id=127323494&format=xml&bd_sig=sig-result&qid= 1227274827.3.2 参数参数名类型描述4.2.1 系统级参数全体qidint百度知道的问题id7.3
17、.3 返回值l response xml 示例l response xml 标签说明标签名描述questioninfo问题内容数据,具体明细参考7.1和7.2bestanswers最佳答案列表answers普通答案列表content回答内容cite回答参考资料pic_url回答贴图url7.4 baidu.zhidao.getquestionanswer7.4.1 功能基于百度知道问题id、回答id获取对应问题的数据的回答url demo:/restserver/zhidao?api_key=20000&method=baidu.zhida
18、o.getquestioninfo &call_id=127323494&format=xml&bd_sig=sig-result&qid= 122727482&aid=12321423527.4.2 参数参数名类型描述4.2.1 系统级参数全体qidint百度知道的问题idaidint百度知道的回答id7.4.3 返回值l response xml 示例l response xml 标签说明标签名描述questioninfo问题内容数据,具体明细参考7.1和7.2answerinfo回答内容数据7.5 baidu.zhidao.question7.5.1 功能向百度知道进行提问url dem
19、o:/restserver/zhidao 参数全部为post方式7.5.2 参数参数名类型描述4.2.1 系统级参数全体api_key method call_id format bd_sig(post)titlestringpost字段问题标题contentstringpost字段问题内容utypestringpost字段用户类型,例如baidu、renren、wanmeiuidintpost字段第三方账号系统uidunamestringpost字段第三方账号系统uname7.5.3 返回值l response xml 示例l respo
20、nse xml 标签说明标签名描述error_code错误号,0为成功error_msg错误描述qid提问成功后返回的qid7.6 baidu.zhidao.answer7.6.1 功能向百度知道的待解决问题进行回答url demo:/restserver/zhidao 参数全部为post方式7.6.2 参数参数名类型描述4.2.1 系统级参数全体api_key method call_id format bd_sig (post)qidstringpost字段提供回答的问题idcontentstringpost字段回答内容citestri
21、ngpost字段回答参考资料pic_urlstringpost字段回答的贴图utypestringpost字段用户类型,例如baidu、renren、wanmeiuidintpost字段第三方账号系统uidunamestringpost字段第三方账号系统uname7.6.3 返回值l response xml 示例l response xml 标签说明标签名描述error_code错误号,0为成功error_msg错误描述qid回答成功后返回的问题id8 第三方提供api接口细则使用提问api(baidu.zhidao.question)的第三方,其用户使用该api提交提问之后,如果知道平台上有用户对该提问进行了回答,那么是需要一种机制反馈给第三方api调用者,以便及时将回答反馈给提问的用户,解决用户的疑问。本章节描述提问下产生回答后,第三方需要提供的api接口规范格式和要求。所有回答相关的反馈输出字符编码均是utf-8需要第三方提供http的接口,采用post方法,参数签名加密算法和4.2.3章节描述的算法一致,会使用第三方的密钥进行加密,第三方对之进行有效性校验,需要支持的post参数如下:参数名类型描述methodstring值为baidu.zhidao.feedbackqidint问题id,知道为int型aidint回答id,知道
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《沟通技能训练》课件-第一章 沟通概论
- 2025年银行零售业务数字化营销转型中的金融科技与金融消费者权益保护报告
- 工业互联网平台射频识别(RFID)在智能工厂设备性能监测与创新维护中的应用报告
- 工业互联网平台数据备份与恢复方案在智能制造中的应用报告
- Unit+2+Exploring+English+Understanding+Ideas+Language+points2025-2026学年高中英语外研版(2019)必修第一册
- 工业互联网网络运维 课件 任务1.3 理解工业互联网网络运维职业规范
- 2025秋教科版科学二年级上册教学课件:第二单元科学阅读 地球家园
- 2023-2024学年贵州省六盘水市盘州市九年级上学期道德与法治期末试题及答案
- 趣味成语 题目及答案
- 数据结构c语言 期末考试试题及答案
- 风电场道路维护与管理方案
- 四川省成都市2024-2025学年下册新七年级分班(奖学金)数学模拟试题(附答案)
- 智鼎在线测评题高潜人才
- 高中历史说课课件
- 干部履历表填写范本(中共中央组织部1999年)
- 专题13 非连续性文本阅读(解析版)
- ICU护理进修汇报
- 2024年初中生物教师进城选调考试模拟试题及答案套
- 武汉××岩土工程勘察详细报告
- 豆制品购销合同范本
- SH/T 3533-2024 石油化工给水排水管道工程施工及验收规范(正式版)
评论
0/150
提交评论