織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能【完美匹配】
百度熊掌號是內容和服務提供者入駐百度生態的認證賬號,致力於幫助內容和服務提供者便捷、高效地連線全網使用者,並充分利用百度生態開放的優勢,獲取流量、沉澱使用者、塑造品牌,實現自身價值的快速增長。
這裡我們只是使用了他的搜尋資源平臺的入口,提供我們網站資源。具體還要資料開放平臺以及類似公眾號的百家號平臺等其他平臺,可以前往熊掌號官網(http://xiongzhang.baidu.com/official/home/main)進一步瞭解。這裡只說如何改造網站接入熊掌號。
首先是開通工作,這個不做詳細說明,依據平臺的要求提示操作即可,這裡我們預設已經通過稽核
直接進入頁面改造步驟dedecms接入熊掌號API提交功能的改造方法
由於本好品網是H5的相適式網站,所以按照H5的改造步驟完成:
在所有頁面的頭部<head>裡面新增程式碼:
<script src="//msite.baidu.com/sdk/c.js?appid=這裡是你的熊掌ID"></script>
然後是給H5頁面新增關注功能(強烈推薦,但是似乎不是強制的) ,至多選擇兩種方式
前面的這個幾個程式碼改造屬於粉絲關注改造不是核心的部分,後面這裡則是核心的部分之一,改造頁面使之符合熊掌號的規範:
4. 新增canonical標籤
在H5頁面<head>部分新增:
樣式:
<link rel="canonical" href="這裡是H5對應的PC頁面地址"/>
要求href的內容為MIP頁或H5頁對應的PC頁地址;如果沒有PC頁,則填寫當前頁面地址。
然後是新增JSON_LD資料,示例:
<script type="application/ld+json"> { "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id": "{dede:global.cfg_basehost/}{dede:field.arcurl/}", "appid": "{dede:global.cfg_xzh_id/}", "title": "{dede:field.title/}", "images": [ "{dede:global.cfg_basehost/}{dede:field.litpic/}" ], "description": "{dede:field.description/}", "pubDate": "{dede:field.pubdate function="MyDate('Y-m-d',@me)"/}T{dede:field.pubdate function="MyDate('H:i:s',@me)"/}" } </script> 說明: @context: 必選欄位, 請保留 “https://ziyuan.baidu.com/contexts/cambrian.jsonld”,若需要校驗資料的schema,則可替換為schema地址 @id: 必選欄位, 當前網頁的url appid: 必選欄位, 熊掌號ID title: 必選欄位, 標題,建議長度:20個字元以內 images: 可選欄位, 搜尋結果結構化資訊展示,僅允許提供0張,1張圖或3張圖 description: 可選欄位, 內容摘要:120個字元以內 pubDate: 必選欄位, 內容釋出時間,格式是(2017-06-15T08:00:01)
顯然上面這些內容是要放置在內容頁也就是詳情頁內,對於DEDECMS可以將上面的例項改造如下:
<script type="application/ld+json">
{
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "{dede:global.cfg_basehost/}{dede:field.arcurl/}",
"appid": "{dede:global.cfg_xzh_id/}",
"title": "{dede:field.title/}",
"images": [
"{dede:global.cfg_basehost/}{dede:field.litpic/}"
],
"description": "{dede:field.description/}",
"pubDate": "{dede:field.pubdate function="MyDate('Y-m-d',@me)"/}T{dede:field.pubdate function="MyDate('H:i:s',@me)"/}"
}
</script>
這裡說明一下,
{dede:global.cfg_basehost/}{dede:field.arcurl/}
獲取的是當前文章頁的URL,而
{dede:global.cfg_xzh_id/}
這裡則是百度熊掌號的ID,這裡配置為一個全域性變數方便後續的資料提交部分的修改。images欄位,則是使用的了dedecms文章縮圖,預設每篇文章帶有一張縮圖,這裡只引用一張也是符合程式碼要求的。摘要和釋出時間不做說明。
以上的工作完成之後,即可通過線上校驗工具
檢驗一下頁面是否符合規範:
最後,我們要完成我們核心的工作部分,資料的提交。這裡資料的提交分為API提交手動提交,手動提交,顧名思義就是將新頁面URL在這裡提交,比較的費事。咱們做的是每當釋出完一篇文章之後,自動提交這篇頁面的URL。這裡參考之前的文章《dedecms後臺控制內容是否需要主動提交到百度》
5. 進入資料庫選擇資料表#@_archives,在表結構最後新增一個新的欄位xzh,這個欄位型別為tinyint,設預設值為1,表示推送資料,當值為0的時候不推送資料,這麼做的目的是為了方便後臺控制是否推送。接著模仿前面提及文章的部分修改article_add.php,article_edit.php,archives_add.php和archives_edit.php這4個檔案,在相應的地方新增xzh和$xzh。以及整合URL提交部分,將之前的URL提交和新的熊掌號URL提交整合在一起,部分程式碼:
/* article_add.php*/
...
if($push==1 && $xzh==1) {
{
$urls[]='https://www.ainiu.net.'/'.$artUrl;
$api = 'http://data.zz.baidu.com/urls?site='.$cfg_baiduhost.'&token='.$cfg_badutoken;
$api_xzh = 'http://data.zz.baidu.com/urls?appid='.$cfg_xzh_id.'&token='.$cfg_xzh_token.'&type=realtime';
/* 百度站長平臺連結提交 */
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
/* 熊掌號資料提交 */
$ch_xzh = curl_init();
$options_xzh = array(
CURLOPT_URL => $api_xzh,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch_xzh, $options_xzh);
$result_xzh = curl_exec($ch_xzh);
}
ClearMyAddon($arcID, $title);
//返回成功資訊
$msg = " 請選擇你的後續操作:
<a href='article_add.php?cid=$typeid'><u>繼續釋出文章</u></a>
<a href='$artUrl' target='_blank'><u>檢視文章</u></a>
<a href='archives_do.php?aid=".$arcID."&dopost=editArchives'><u>更改文章</u></a>
<a href='catalog_do.php?cid=$typeid&dopost=listArchives'><u>已釋出文章管理</u></a>
<a href=''><u>百度提交返回:".$result."熊掌號提交返回:".$result_xzh."</u></a>
$backurl";
}
else {
ClearMyAddon($arcID, $title);
//返回成功資訊
$msg = " 請選擇你的後續操作:
<a href='article_add.php?cid=$typeid'><u>繼續釋出文章</u></a>
<a href='$artUrl' target='_blank'><u>檢視文章</u></a>
<a href='archives_do.php?aid=".$arcID."&dopost=editArchives'><u>更改文章</u></a>
<a href='catalog_do.php?cid=$typeid&dopost=listArchives'><u>已釋出文章管理</u></a>
$backurl";
}
$msg = "<div style=\"line-height:36px;height:36px\">{$msg}</div>".GetUpdateTest();
$wintitle = "成功釋出文章!";
$wecome_info = "文章管理::釋出文章";
$win = new OxWindow();
$win->AddTitle("成功釋出文章:");
$win->AddMsgItem($msg);
$winform = $win->GetWindow("hand"," ",false);
$win->Display();
}
?>
具體修改,請參考上傳的附件檔案
6. 前面提到的全域性變數別忘記新增 cfg_xzh_id 表示熊掌號ID,cfg_xzh_token表示熊掌號的token
7.修改後臺管理模板檔案,在article_add.htm和artchives_add.htm新增如下:
<!--主動推送資料 -->
<td width="100">主動推送到百度:</td>
<td><input type='radio' name='push' value="0" /> 不推送
<input type='radio' name='push' value="1" checked='1'/> 推送</td>
<!--主動推送資料 -->
<!-- 上面是以前新增資料主動提交的控制元件開關 -->
<!-- 下面是新增加的針對熊掌號資料提交的控制元件開關 -->
<!--熊掌號推送資料 -->
<td width="100">主動推送到熊掌號:</td>
<td><input type='radio' name='xzh' value="0" /> 不推送
<input type='radio' name='xzh' value="1" checked='1'/> 推送</td>
<!--熊掌號推送資料 -->
在article_edit.htm和archives_edit.htm新增如下:
<!--主動推送資料 -->
<td width="100">主動推送到百度:</td>
<td><input type='radio' name='push' value="0" <?php if($arcRow['push']=='0') echo " checked='1' "?>/> 不推送
<input type='radio' name='push' value="1" <?php if($arcRow['push']=='1') echo " checked='1' "?>/> 推送</td>
<!--主動推送資料 -->
<!-- 上面是以前新增資料主動提交的控制元件開關 -->
<!-- 下面是新增加的針對熊掌號資料提交的控制元件開關 -->
<!--熊掌號推送資料 -->
<td width="100">主動推送到熊掌號:</td>
<td><input type='radio' name='xzh' value="0" <?php if($arcRow['xzh']=='0') echo " checked='1' "?>/> 不推送
<input type='radio' name='xzh' value="1" <?php if($arcRow['xzh']=='1') echo " checked='1' "?>/> 推送</td>
<!--熊掌號推送資料 -->
當前這文章釋出出去之後後臺顯示如下:
說明:後臺目前只能設定為同時推送和同時不推送,不然會出現問題。