MetaWeblog 同時(shí)管理51cto,csdn,sina,163,oschina,cnblogs等博客

我們技術(shù)人一般都會(huì)有自己的一個(gè)博客,用于記錄一些技術(shù)筆記,也期望自己的筆記文章可以讓更多人知道。

如何讓更多人知道自己的博客?

  • 搜索引擎收錄,用戶通過關(guān)鍵詞搜索可能會(huì)進(jìn)入
  • 內(nèi)容運(yùn)營,但是一般技術(shù)人為了文章做運(yùn)營的人應(yīng)該沒有幾個(gè)
  • 通過大流量同類型網(wǎng)站導(dǎo)流量

我是使用 方法一 和 方法三,方法一就不說了,互聯(lián)網(wǎng)人都知道了,但是小網(wǎng)站效果不會(huì)太好了。方法三就是充當(dāng)復(fù)讀機(jī):復(fù)制 和 粘貼 到其他技術(shù)網(wǎng)站

“復(fù)制 和 粘貼 到其他技術(shù)網(wǎng)站” 說起來容易,這TM就是個(gè)體力活呀,誰愿意自己寫了一篇文章 再占用半個(gè)小時(shí),同步到各個(gè)技術(shù)網(wǎng)站和論壇。

我這次記錄的就是如何簡單方便的同步管理?MetaWeblog,對就是這個(gè)名詞,這也是一個(gè)協(xié)議,我所知道的各大技術(shù)網(wǎng)站基本都實(shí)現(xiàn)了這個(gè)協(xié)議,通過這個(gè)協(xié)議我們就可以向各大技術(shù)網(wǎng)站通過接口直接同步博客。作為一個(gè)技術(shù)人員還是要與時(shí)俱進(jìn),時(shí)刻學(xué)習(xí)呀,我是偶然有這個(gè)想法查閱了一些資料知道了這個(gè)協(xié)議,但是這個(gè)協(xié)議于2002年都被提出來了,直到今天才知道,真是羞愧呀

MetaWeblog 客戶端 也是基于Http協(xié)議的,數(shù)據(jù)報(bào)文是XML的,也就是按照規(guī)定的XML格式,發(fā)送Http 請求就好了。
數(shù)據(jù)庫報(bào)文格式可以參考官網(wǎng)說明:http://xmlrpc.scripting.com/metaWeblogApi.html
官方有個(gè)xml例子可以參考:http://cyber.law.harvard.edu/blogs/gems/tech/sampleMetaweblogCall.txt

MetaWeblog有幾個(gè)常用Api

|| Api名稱 || 描述 ||
|| metaWeblog.newPost || 發(fā)布新的文章 ||
|| metaWeblog.editPost || 編輯文章 ||
|| metaWeblog.getPost || 獲取文章 ||
|| metaWeblog.getRecentPosts || 獲取近來的文章 ||
|| metaWeblog.getCategories || 獲取類目 ||

基礎(chǔ)腦補(bǔ)忘了,說實(shí)現(xiàn)架構(gòu)吧

1.我新建了兩個(gè)相關(guān)表 blog_sync_queue 和 blog_sync_mapping

CREATE TABLE `blog_sync_queue` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `blog_id` int(11) NOT NULL COMMENT '本站博客id',  `type` varchar(10) NOT NULL DEFAULT '' COMMENT '類型',  `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '狀態(tài):-1: 待運(yùn)行 0: 失敗 1:成功',  `updated_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次更新時(shí)間',  `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入時(shí)間',  PRIMARY KEY (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='博客同步隊(duì)列';

CREATE TABLE `blog_sync_mapping` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `blog_id` int(11) NOT NULL COMMENT '本站blog的id',  `cto51_id` varchar(64) NOT NULL DEFAULT '' COMMENT '51cto博客的id',  `csdn_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'csdn的id',  `sina_id` varchar(64) NOT NULL DEFAULT '' COMMENT '新浪博客的id',  `netease_id` varchar(64) NOT NULL DEFAULT '' COMMENT '網(wǎng)易博客的id',  `oschina_id` varchar(64) NOT NULL DEFAULT '' COMMENT '開源中國的id',  `cnblogs_id` varchar(64) NOT NULL DEFAULT '' COMMENT '博客園的id',  `updated_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次更新時(shí)間',  `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入時(shí)間',  PRIMARY KEY (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='本站blog_id 與其他同步站點(diǎn)的id關(guān)系';

2.每次博客變動(dòng)我都會(huì)在blog_sync_queue插入一條記錄,例如 表示想cnblogs提交我個(gè)人博客ID為6的博文

INSERT INTO `blog_sync_queue` (`id`, `blog_id`, `type`, `status`, `updated_time`, `created_time`)VALUES(12, 6, 'cnblogs', -1, '2016-01-09 00:09:38', '2016-01-08 23:36:40');

3.寫一個(gè)php 腳本,配置crontab每5分鐘運(yùn)行一次
此腳本就是從blog_sync_queue 查詢 status = -1 的結(jié)果集,然后通過MetaWeblog接口提交到指定網(wǎng)站

下面搞幾張截圖,觀賞下自動(dòng)復(fù)讀機(jī)的效果

PS:csdn還沒有實(shí)現(xiàn),主要是csdn有時(shí)候好像服務(wù)器metaweblog有問題,還在繼續(xù)研究中





有興趣的朋友可以通過本站關(guān)于通過郵件和wechat聯(lián)系我

原文地址:MetaWeblog 同時(shí)管理51cto,csdn,sina,163,oschina,cnblogs等博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容