阅读495 返回首页    go 百度 go 百度知道


知道开放平台

   知道开放平台

  • 合作细则

    1、合作简介:

    百度知道开放平台是基于问答需求的数据开放平台:通过与第三方合作网站的问答数据互通,将用户需求推送给合作站点,为合作站点扩展问题来源,提升品牌曝光和影响力;同时通过第三方网站的回答支持,为用户带来及时、准确的问答体验,形成良性的问答互动平台。 


    2、合作模式:

    百度知道通过API接口向您的网站每日推送至少1000条领域问题(推送问题数量和问题分类按双方约定的邮件协议为准),需要您网站的网友或运营编辑人员在您的网站解答问题(注意:不是在百度知道平台上回答问题),再通过API接口同步返回答案数据到百度知道,提升您的网站品牌曝光及影响力。

     

    3、合作目标:

    @网站或论坛:扩展问题来源,提升品牌曝光及影响力;

    @百度知道:引入网站或论坛提供的优质答案,提升垂直领域内的解答力;

     

    4、合作指标:

    您的网站需要保证在上线后的1个月内,设法使得这批问题24h内的解答率达到80%以上(解答率指“有靠谱回答的问题数/推送问题总数”)随着百度知道规模增长,允许知道同步更多问题给您的网站进行解答,具体数值届时通过邮件约定。

     

     

    5、合作案例:

    论坛模式合作案例:https://zhidao.baidu.com/question/1732517743676920547.html  

    问答网站合作案例:https://zhidao.baidu.com/question/135158109278808325.html  

     

     

    6、合作流程:

    1)申请合作:申请接入百度知道开放平台,点击申请接入

    2)协议确认:知道员工会与申请合作方联系再次确认合作协议细节,

    电子合作协议双方确认后—》开通申请权限,由百度知道统一发送纸质协议,进行双方盖章(注意:合同章和骑缝章)

    3)审核资料:

    • 注册百度账号;如果您已有百度账号,忽略此步骤,否则请点击这里:注册成为百度用户

      申请接入百度知道开放平台,如果您已申请,忽略此步骤,否则请点击这里:申请接入


      百度知道开放平台与百度知道企业开放平台的区别?

      百度知道开放平台是以API接口的形式提供给站长,需要在您的网站(BBS论坛或问答类网站)进行解答问题后,再调用接口同步给百度知道;

      知道企业开放平台是在百度知道平台上解答企业相关问题;


      提交申请后,审核期需要多长时间?

      我们将在10个工作日内对您提交的申请进行审核,请随时注意查收邮件和保持手机畅通;


      审核通过与否通过什么方式通知我?

      审核未通过,通知会以邮件的形式发送至您提交申请时填写的电子邮箱中,请注意查收;

      审核通过,知道工作人员会以QQ或电话主动与您沟通,确认合作细节,请确保手机畅通和QQ在线;


      审核通过后站长需要做什么?

      审核通过后,请查收知道开放平台将AppKey以邮件形式发送至您提交申请时填写的电子邮箱,具体操作请按邮件每步操作流程执行,API接口详情文档,请点击这里:API接口

    • 考核指标和奖惩措施

      一. 开放平台合作原则:

      百度知道开放平台通过与第三方合作网站的问答数据互通,将用户需求推送给合作站点,为合作站点扩展问题来源,提升品牌曝光和影响力;同时通过第三方网站的回答支持,为用户带来及时、准确的问答体验,形成良性的问答互动平台。因此,开放平台严格要求合作网站对用户提问的解答质量。

       

      二. 对合作网站的考核指标和相应奖惩办法:

      百度知道将监控合作网站的推送问题量、24h回答覆盖率,并不定期对合作网站的回答质量进行抽检,并根据各项指标指导对合作站点的奖惩。如发现考核指标不符合预期,或存在回答中作弊、推广品牌或有其它不符合知道回答规范的行为,将视情节严重程度,予以指导、沟通协调、暂停合作等处理。具体说明如下:

       

      1. 接收问题量

      1) 最低接收问题量为1000条/天,达到1000条/天的站点均可享受开放平台V1级合作展示;如因合作站点原因无法达到最低值,将暂停双方合作。

      2) 接收问题量达到5000条/天,百度知道将予以合作站点V2级合作展示。

      3) 接收问题量达到10000条/天,百度知道将予以合作站点V3级合作展示。


      2. 24h回答覆盖率(覆盖率=有回答问题数/推送问题总数)

      (注:合作网站若是由编辑或运营解答问题的站点,节假日和周六日可不计入考核期)

      1) 按合作网站每日接收问题量,24h回答覆盖率期望达到80%以上,可保持良好合作关系

      2) 如连续3天覆盖率低于30%,百度知道将和合作网站沟通协调,建议合作网站改进;如沟通失败或改进无效果,问题推送量将降低50%;如覆盖率仍低于30%,将暂停双方合作。

       

      3. 回答质量

      优质回答指可以解决当前提问的回答;

      低质回答指回答灌水、答非所问、不解决提问等情况,且不仅限于此;

      违规回答指回答内容包含违法、淫秽、诈骗、侵权、广告等内容,且不仅限于此。

      1) 优质回答占比80%以上,可保持良好合作关系;且百度知道会和合作网站沟通继续提升接受问题量。

      2) 优质回答占比低于30%,百度知道将和合作网站沟通协调,给予指导,希望合作网站在7天内优化改进;如改进无效,将暂停双方合作。

      3) 低质回答占比达到10%以上,百度知道将和合作网站沟通协调,给予指导,希望合作网站在7天内优化改进;如改进无效,将暂停双方合作。

      4) 如发现合作网站有违规回答,百度知道将予以警告;警告1次,希望合作网站在3天内优化改进;如再犯,给予第2次警告,且问题推送量降低50%;如再犯,将直接取消双方合作。

       

      百度知道开放平台,希望和合作网站携手,共同为广大网民排忧解难,共建中文互联网最大的问答平台,希望合作网站了解以上考核指标和奖惩办法,积极合作,实现共赢。

       

      本条例百度知道有最终解释权。


    • 开发指南

        接入流程

      本文主要面向百度知道开放平台的开发者,开发者可通过此文学习如何接入百度知道。 

      接入的具体步骤如下: 

      1、注册百度账号;如果您已有百度账号,忽略此步骤,否则请点击这里:注册成为百度用户

      2、申请接入百度知道开放平台,如果您已申请,忽略此步骤,否则请点击这里:申请接入

      3、等待百度知道的审核邮件,如果审核通过,您将会收到一封通过的邮件,否则感谢您的关注

      4、熟悉接入百度知道的功能流程,详情见下述说明

      5、开发接口与百度知道对接,见API接口


        接入功能

      要接入百度知道开放平台,您的站点跟百度知道需要至少包含两个核心交互点:

      1、订阅提问(百度知道 --> 您的站点)

      当一个新问题产生时,百度知道开放平台会判断该问题是否符合您的定制需求,如果符合,百度知道将把这个问题的内容字段打包,用HTTP协议的POST方式发送给您提供的提问接口。当接收到一个新提问时,您可以把这个问题转化成适合您站点性质的方式去展现,以便获取回复。


      2、回答提交(您的站点 --> 百度知道)

      当您把接收到的问题以某种形式发布在您的站点后,如果一旦有人回复了该问题,需要您将该用户的回复内容,通过HTTP协议发送给我们的回答提交接口。这样,您站点的内容就会作为回答在百度知道的问答页面展现了,同时您的站点也得到了曝光。


      所以,要进行基本的对接,需要您完成至少以下两个功能的开发:

      1、开发一个能接收提问的http接口;点此查看提问订阅接口

      2、当回复产生时,调起百度知道提供的回答提交的http接口;点此查看回答提交接口


      完成了以上两步操作,恭喜您,最基本的对接开发已经完成。

      这时,您可进入开放平台开发者中心,进行自主测试联调,完成后您将可以接收到百度知道的问题,同时把回答提交给百度知道,让您的站点得到曝光!


      【举例说明】

      假设您的站点是论坛性质,那可以把一个新问题当做一个新主题发到某个版块中,当这个主题下有人回复后,把该回复当做回答提交给百度知道就可以了;

      假设您的站点本身就是问答网站,那就把这个问题加入至您本身的问题列表里,当这个问题下有人回答后,把该回答也同步给百度知道就可以了;


        SDK下载

      PHP-SDK点击下载

      NET-SDK点击下载


    • 开发SDK

      PHP-SDK:点此下载

    • API接口-提交接口-联调环境

        联调环境

      联调时,请使用域名前缀:

      https://180.149.133.113:8080/具体接口url

      所有的提交接口,除了回答提交,其他默认都是没有权限的,如果需要,请向百度知道申请。



        线上环境

      待联调成功后,百度知道会为您开通正式的线上权限。

      届时,提交域名请使用:
      https://zhidao.baidu.com/具体接口url

    • API接口-提交接口-必读规范

        接入规范

      百度知道一旦通过您的应用接入申请,将会以邮件的形式发送给您以下两个参数:

      ‍‍appkey:‍‍应用在百度知道的唯一标识;

      ‍‍securitykey:‍‍应用提交时计算签名需使用的安全秘钥;

      ‍‍以上秘钥各站点需要严格保护,‍‍不允许泄露,一旦泄露将取消接入资格。

      该秘钥在联调环境和线上环境同样适用。


        安全参数

      百度知道提供的所有提交接口,在请求时都必须携带以下两个安全参数:

      参数1:appkey(int类型),在接入时由百度知道分配;

      参数2:sign(string类型),签名参数,该值生成方式见以下“签名认证安全算法”说明;



      特殊说明:

      因百度的网络安全设置,请在所有的提交请求中设置header的Expect项为空,否则提交可能会出现超时现象。

      举例:(php下curl的设置方式)

      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect: '));


        编码规范

      所有接口涉及的字符,均使用UTF8编码。提交方式均采用POST方式。


        返回格式

      百度知道提供的所有提交接口,返回格式统一为json格式,且内容如下所示:

      {
          'errno'  : 0,       //操作是否成功,0成功,非0失败,具体原因见errmsg
          'errmsg' : 'xxx',   //操作结果文字描述
          'data'   : {},      //部分接口存在该字段,例如回答成功时返回replyid,具体请查看接口说明
      }


        签名认证安全算法

      第1步:从‍‍当前您正准备要发给百度知道提交接口的POST数据包里‍‍,提取questionid参数,如果该参数不存在,用空字符串替代;


      第2步:结合审核通过邮件中发送的appkey和securitykey,将以下3个参数组成字符串,中间用&分割;‍‍

      securitykey&appkey&questionid‍‍


      第3步:计算上述字符串的MD5值,即为签名的值,如:

      sign=MD5(securitykey&appkey&questionid)


      【举例】

      假设分配给您的appkey为1000,securitykey为8777F555E8C16715EBA5C85341684C58,‍‍

      您此刻正要调用百度知道的回答提交接口,且已经准备好要发送的POST数据了,数组里有这么几个字段:

      appkey1000应用标识id
      questionid1238790666问题标识id
      content‍‍这是回答内容回答内容
      app_uid123回答用户uid

      这时,您计算sign的方式应该是这样的:

      $sign = MD5(“8777F555E8C16715EBA5C85341684C58&1000&1238790666”)


      【示例代码】

      /**

      * 根据本次请求内容,动态构建sign参数

      * $appKey  百度知道为您分配的appkey

      * $securityKey 百度知道为您分配的安全秘钥

      * $post 本次您将要发送给百度知道的POST数据,数组格式,UTF8编码

      */

      function buildSign($appKey, $securityKey, $post) {

          $qid = isset($post['questionid']) ? $post['questionid'] : '';

          return md5("$securityKey&$appKey&$qid");

      }








                             

    • API接口-提交接口-回答

        接口概述

      本接口,用来对某个指定的问题进行回答,提交成功后,返回回答ID。


        接入URL

      /openapi/submit/reply

      域名前缀请查看联调环境介绍,点此查看


        请求方式

      仅支持HTTP协议的POST方式,UTF-8编码。


        接入参数

      在使用本接口时,请务必遵守提交规范,携带安全参数,点此查看

      参数名

      类型

      必需

      描述

      questionid

      string

      问题标识id,不超过32个字符

      content

      string

      回答内容,最大19999个字符(9999个汉字)

      app_uid

      uint

      站点用户ID,建议填写

      app_uname

      string

      站点用户名,建议填写

      app_uavatar

      string

      站点用户头像url

      app_uprofile

      string

      站点用户主页链接

      app_uinterest

      string

      站点用户擅长领域

      app_url

      string

      站点链接

      pic_urls

      string

      回答图片url,多个用逗号分隔

      说明:如果回答中包含图片,需要保证该图片可被百度抓取;


        接口返回

      格式:json响应
      规则:接口调用成功会返回questionid和replyid,否则有相关errno和errmsg标识错误原因。

      范例:
      {
         “errno”:0,
         “errmsg”:”sucess”,
         “data” : {“questionid”:”125500604044”, “replyid”:”12394838223”}
      }

      如果返回的errno不为0,可以查看错误码含义和常见问题,点此查看


        示例代码

      <?php
      /************************************回答提交demo******************************************/
      /**
      * 根据本次请求内容,动态构建sign参数
      * $appKey  百度知道为您分配的appkey
      * $securityKey 百度知道为您分配的安全秘钥
      * $post 本次您将要发送给百度知道的POST数据,数组格式,UTF8编码
      */
      function buildSign($appKey, $securityKey, $post) {
          $qid = isset($post['questionid']) ? $post['questionid'] : '';
          $title = isset($post['title']) ? $post['title'] : '';
          $content = isset($post['content']) ? $post['content'] : '';
          return md5("$securityKey&$appKey&$qid&$title&$content");
      }

      //百度知道分配的两个key
      $appKey      = '1000';
      $securityKey = '918FD1F01DAE2F0F039B25EE0B64486D';

      //组织发送包
      $post = array();
      $post['questionid'] = '1378130862187018300';
      $post['content']    = '这是回答内容';
      $post['app_uid']    = '345';
      $post['app_uname']  = '小丽';
      $post['app_uprofile'] = 'heihei';
      //其他参数可按照api文档填充即可

      //组织发送包里的2个权限参数
      $post['appkey'] = $appKey;
      $post['sign']   = buildSign($appKey, $securityKey, $post);

      //发起post请求
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_COOKIESESSION, false);
      curl_setopt($ch, CURLOPT_URL, "https://https://220.181.163.143:8080/openapi/submit/reply");
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($field));
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: '));

      //解析结果
      $chRes = curl_exec($ch);
      //交互失败
      if ($chRes === false) {
          echo 'send failed, error' . curl_errno($ch);
          exit();
      }

      //解析返回结果
      $js = json_decode($chRes, true);

      //打印返回的json数据
      Header('Content-type:application/json; charset=UTF-8');
      var_export($js);
      ?>

    • API接口-提交接口-追答

        接口概述

      本接口,用来对某个问题下的指定回答进行追答。


        接口URL

      /openapi/submit/rereply


        接口参数

      参数名

      类型

      必需

      描述

      questionid

      string

      问题标识id

      replyid

      uint

      回答标识id

      content

      string

      追答内容,最长2000字符或1000汉字。

      app_uid

      uint

      站点用户ID

      app_uname

      string

      站点用户名

      pic_urls

      string

      追答包含的图片url,多个用逗号分隔


        返回接口

      格式:json响应
      规则:接口调用成功时会返回errno为0,否则有相关errno和errmsg标识错误原因。
      举例:
      {
         “errno”:30000,
         “errmsg”:”Request params not valid”
      }

    • API接口-订阅接口-必读规范

        订阅规范

      百度知道一旦通过您应用的订阅申请,将会实时地将您订阅的消息推送给您提供的接口。


        安全参数

      当百度知道向您的接口提交数据时,您可以提供您所需要的安全校验方式,目前支持两种:

      方式一:静态安全参数,可以指定必须携带的固定参数,参数可以为多个;
      【举例】
      假设给您的所有提交都需要携带key和token参数,您可以给我们提供这样的字符串:
      key=xxxxx&token=xxxx,这样我们的所有请求都会携带这两个参数了。

       

      方式二:动态安全参数,如果您的安全参数不是固定的,那么需要您提供相应的生成函数(使用php语言实现),该函数名固定为buildSecurity,输入固定为本次请求的POST字段列表(数组形式),输出为需要携带的安全参数。

      【举例】
      某网站需要根据key和qid、title、create_time一起生成一个sign字段,于是他们需要提供这个函数给我们:
      function buildSecurity($data) {
          $key   = ‘xxxxxxxxxxx’;
          $qid   = isset($data[‘questionid’]) ? $data[‘questionid’] : ‘’;
          $title = isset($data[‘title’]) ? $data[‘title’] : ‘’;
          $ctime = isset($data[‘create_time’]) ? $data[‘create_time’] : ‘’;
          
          $sign = md5(“$qid$title$ctime$key”);
          return “sign=$sign”;
      }
      我们在请求时,会获取这个函数的返回并携带到提交请求里。


        编码规范

      所有接口涉及的字符,均使用UTF8编码。提交均采用POST方式。


        接口返回

      百度知道回调的所有接口,不论成功与否,请务必返回json格式,且包含的字段必须如下所示:
      {
         “errno”:0,                //操作是否成功,0成功,非0不成功
         “errmsg”:”success”,     //操作结果描述,如果中文,请使用utf8编码
      }

      如果回调返回的http code为200,且errno字段存在(不论是否为0),则认为本次交互已经成功,操作结束。

      否则认为回调失败,会一直重试直至成功。

    • API接口-订阅接口-提问通知

        接口概述

      本接口用来做待解决问题的推送,当百度知道产生符合应用规则的问题时,将通知到应用方,应用方接收到该问题后,可以推送到各个回答入口去引导用户回答。


        订阅要求

      如果您需要订阅该接口,需要您提供以下信息:


      订阅信息项

      说明

      接收通知的url

      必填

      展现图片的域名

      可选,如果您需要展现百度知道的图片,请提供域名

      订阅规则

      可选


        订阅规则

      接入的应用可根据自身应用特点定制一些问题特性,只有当问题符合您定制的特性时,该问题才会推送给您的应用。


      特性列表

      说明

      每日问题上限

      默认不设上限

      每日问题下限

      默认不设下限

      定制分类

      可定制多个分类,一旦问题属于该分类,将优先推送

      定制关键词

      可定制多个关键词,一旦问题标题匹配该关键词,将优先推送

      定制地理标签

      可定制多个地理标签,一旦问题匹配该地理标签,将优先推送

      屏蔽分类

      可屏蔽多个分类,一旦问题属于该分类,将取消推送

      屏蔽关键词

      可屏蔽多个关键词,一旦问题标题匹配该关键词,将取消推送

      屏蔽富文本

      可屏蔽多类富媒体,一旦问题包含该富媒体,将取消推送



        接口参数

      在使用此接口前,请您仔细阅读订阅规范,点此查看


      参数名

      类型

      描述

      question_id

      string

      问题编号,不超过32个字符

      title



    •  回答质量

       

      优质回答指可以解决当前提问的回答;

      低质回答指回答灌水、答非所问、不解决提问等情况,且不仅限于此;

      违规回答指回答内容包含违法、淫秽、诈骗、侵权、广告等内容,且不仅限于此。

      1) 优质回答占比80%以上,可保持良好合作关系;且百度知道会和合作网站沟通继续提升接受问题量。

      2) 优质回答占比低于30%,百度知道将和合作网站沟通协调,给予指导,希望合作网站在7天内优化改进;如改进无效,将暂停双方合作。

      3) 低质回答占比达到10%以上,百度知道将和合作网站沟通协调,给予指导,希望合作网站在7天内优化改进;如改进无效,将暂停双方合作。

      4) 如发现合作网站有违规回答,百度知道将予以警告;警告1次,希望合作网站在3天内优化改进;如再犯,给予第2次警告,且问题推送量降低50%;如再犯,将直接取消双方合作。

       

       

      如有疑问请随时反馈“知道开放平台互助QQ群”:52325831

       

       

       

       

       

       


       

    • 常见问题                            申请加入百度知道开放平台需要什么条件?

      1、BBS论坛或网站已有问答类产品

      2、有一定的用户基础

      3、具有较强的贡献能力


      如何加入百度知道开放平台?

    • 正式上线后,关于24h回答覆盖率和回答质量考核,请点击详情介绍  https://help.baidu.com/question?prod_en=zhidao&class=611&id=1001242


      24h回答覆盖率(覆盖率=有回答问题数/推送问题总数)

       

       (注:合作网站若是由编辑或运营解答问题的站点,节假日和周六日可不计入考核期)

      1)按合作网站每日接收问题量,24h回答覆盖率期望达到80%以上,可保持良好合作关系

      2) 如连续3天覆盖率低于30%,百度知道将和合作网站沟通协调,建议合作网站改进;如沟通失败或改进无效果,问题推送量将降低50%;如覆盖率仍低于30%,将暂停双方合作。

       

      正式上线后,如需增加关键词,请进入“申请信息页”(https://zhidao.baidu.com/opendev/center/apply)

      下载官方推荐的关键词表选择适合的关键词提供给百度官方负责人

       

       测试成功后,请点击“申请上线”(https://zhidao.baidu.com/opendev/develop/index?type=10),等待官方审核通过后正式上线

       

       

       

       

       

      需要站点调用API接口启动开发完成后,

                   需要进入百度知道开放平台自助联测平台(https://zhidao.baidu.com/opendev/develop/index?type=1

                    您可以对您所订阅的百度知道开放平台各个接口进行线下联调测试,祝您一切顺利! 

      审核通过后,知道开放平台系统会将AppKey以邮件形式发送至您提交申请时填写的电子邮箱中,请注意查收;

      审核未通过,同样会收到知道开放平台系统发出的邮件,请按邮件上标明的联系方式与我们联系;

      4)正式上线:

最后更新:2016-12-28 13:50:17

  上一篇:go 成长体系
  下一篇:go 知道行家认证