知道開放平台
知道開放平台
合作細則
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)審核資料:
考核指標和獎懲措施
一. 開放平台合作原則:
百度知道開放平台通過與第三方合作網站的問答數據互通,將用戶需求推送給合作站點,為合作站點擴展問題來源,提升品牌曝光和影響力;同時通過第三方網站的回答支持,為用戶帶來及時、準確的問答體驗,形成良性的問答互動平台。因此,開放平台嚴格要求合作網站對用戶提問的解答質量。
二. 對合作網站的考核指標和相應獎懲辦法:
百度知道將監控合作網站的推送問題量、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下載 開發SDK
PHP-SDK:點此下載
API接口-提交接口-聯調環境
聯調環境 聯調時,請使用域名前綴:
https://180.149.133.113:8080/具體接口url
所有的提交接口,除了回答提交,其他默認都是沒有權限的,如果需要,請向百度知道申請。
線上環境 待聯調成功後,百度知道會為您開通正式的線上權限。
屆時,提交域名請使用:
https://zhidao.baidu.com/具體接口urlAPI接口-提交接口-必讀規範
接入規範 百度知道一旦通過您的應用接入申請,將會以郵件的形式發送給您以下兩個參數:
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數據了,數組裏有這麼幾個字段:
appkey 1000 應用標識id questionid 1238790666 問題標識id content 這是回答內容 回答內容 app_uid 123 回答用戶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、BBS論壇或網站已有問答類產品
2、有一定的用戶基礎
3、具有較強的貢獻能力
如何加入百度知道開放平台?
注冊百度賬號;如果您已有百度賬號,忽略此步驟,否則請點擊這裏:注冊成為百度用戶
申請接入百度知道開放平台,如果您已申請,忽略此步驟,否則請點擊這裏:申請接入
百度知道開放平台與百度知道企業開放平台的區別?
百度知道開放平台是以API接口的形式提供給站長,需要在您的網站(BBS論壇或問答類網站)進行解答問題後,再調用接口同步給百度知道;
知道企業開放平台是在百度知道平台上解答企業相關問題;
提交申請後,審核期需要多長時間?
我們將在10個工作日內對您提交的申請進行審核,請隨時注意查收郵件和保持手機暢通;
審核通過與否通過什麼方式通知我?
審核未通過,通知會以郵件的形式發送至您提交申請時填寫的電子郵箱中,請注意查收;
審核通過,知道工作人員會以QQ或電話主動與您溝通,確認合作細節,請確保手機暢通和QQ在線;
審核通過後站長需要做什麼?
審核通過後,請查收知道開放平台將AppKey以郵件形式發送至您提交申請時填寫的電子郵箱,具體操作請按郵件每步操作流程執行,API接口詳情文檔,請點擊這裏:API接口
回答質量
優質回答指可以解決當前提問的回答;
低質回答指回答灌水、答非所問、不解決提問等情況,且不僅限於此;
違規回答指回答內容包含違法、淫穢、詐騙、侵權、廣告等內容,且不僅限於此。
1) 優質回答占比80%以上,可保持良好合作關係;且百度知道會和合作網站溝通繼續提升接受問題量。
2) 優質回答占比低於30%,百度知道將和合作網站溝通協調,給予指導,希望合作網站在7天內優化改進;如改進無效,將暫停雙方合作。
3) 低質回答占比達到10%以上,百度知道將和合作網站溝通協調,給予指導,希望合作網站在7天內優化改進;如改進無效,將暫停雙方合作。
4) 如發現合作網站有違規回答,百度知道將予以警告;警告1次,希望合作網站在3天內優化改進;如再犯,給予第2次警告,且問題推送量降低50%;如再犯,將直接取消雙方合作。
如有疑問請隨時反饋“知道開放平台互助QQ群”:52325831
正式上線後,關於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