1. 程式人生 > >織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能【完美匹配】

織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能【完美匹配】

 

百度熊掌號是內容和服務提供者入駐百度生態的認證賬號,致力於幫助內容和服務提供者便捷、高效地連線全網使用者,並充分利用百度生態開放的優勢,獲取流量、沉澱使用者、塑造品牌,實現自身價值的快速增長。

這裡我們只是使用了他的搜尋資源平臺的入口,提供我們網站資源。具體還要資料開放平臺以及類似公眾號的百家號平臺等其他平臺,可以前往熊掌號官網(http://xiongzhang.baidu.com/official/home/main)進一步瞭解。這裡只說如何改造網站接入熊掌號。

首先是開通工作,這個不做詳細說明,依據平臺的要求提示操作即可,這裡我們預設已經通過稽核

直接進入頁面改造步驟dedecms接入熊掌號API提交功能的改造方法

織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能

由於本好品網是H5的相適式網站,所以按照H5的改造步驟完成:

在所有頁面的頭部<head>裡面新增程式碼:

<script src="//msite.baidu.com/sdk/c.js?appid=這裡是你的熊掌ID"></script>

然後是給H5頁面新增關注功能(強烈推薦,但是似乎不是強制的) ,至多選擇兩種方式           

織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能

前面的這個幾個程式碼改造屬於粉絲關注改造不是核心的部分,後面這裡則是核心的部分之一,改造頁面使之符合熊掌號的規範:

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:   必選欄位,   請保留 &ldquo;https://ziyuan.baidu.com/contexts/cambrian.jsonld&rdquo;,若需要校驗資料的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文章縮圖,預設每篇文章帶有一張縮圖,這裡只引用一張也是符合程式碼要求的。摘要和釋出時間不做說明。

 

以上的工作完成之後,即可通過線上校驗工具

 

織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能

檢驗一下頁面是否符合規範:

織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能

 

最後,我們要完成我們核心的工作部分,資料的提交。這裡資料的提交分為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>

    &nbsp;&nbsp;

    <a href='$artUrl' target='_blank'><u>檢視文章</u></a>

    &nbsp;&nbsp;

    <a href='archives_do.php?aid=".$arcID."&dopost=editArchives'><u>更改文章</u></a>

    &nbsp;&nbsp;

    <a href='catalog_do.php?cid=$typeid&dopost=listArchives'><u>已釋出文章管理</u></a>

    <a href=''><u>百度提交返回:".$result."熊掌號提交返回:".$result_xzh."</u></a>

   &nbsp;&nbsp; $backurl";

}

else {

    ClearMyAddon($arcID, $title);

    //返回成功資訊

    $msg = "      請選擇你的後續操作:

    <a href='article_add.php?cid=$typeid'><u>繼續釋出文章</u></a>

    &nbsp;&nbsp;

    <a href='$artUrl' target='_blank'><u>檢視文章</u></a>

    &nbsp;&nbsp;

    <a href='archives_do.php?aid=".$arcID."&dopost=editArchives'><u>更改文章</u></a>

    &nbsp;&nbsp;

    <a href='catalog_do.php?cid=$typeid&dopost=listArchives'><u>已釋出文章管理</u></a>

    &nbsp;&nbsp;$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","&nbsp;",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>

<!--熊掌號推送資料 -->

當前這文章釋出出去之後後臺顯示如下:

 

織夢熊掌號外掛,dedecms如何接入熊掌號API提交功能

說明:後臺目前只能設定為同時推送和同時不推送,不然會出現問題。