我們技術(shù)人一般都會(huì)有自己的一個(gè)博客,用于記錄一些技術(shù)筆記,也期望自己的筆記文章可以讓更多人知道杜恰。
如何讓更多人知道自己的博客薄料?
- 搜索引擎收錄敞贡,用戶通過關(guān)鍵詞搜索可能會(huì)進(jìn)入
- 內(nèi)容運(yùn)營(yíng),但是一般技術(shù)人為了文章做運(yùn)營(yíng)的人應(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)站和論壇啦桌。
我這次記錄的就是如何簡(jiǎn)單方便的同步管理溯壶?MetaWeblog,對(duì)就是這個(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 請(qǐng)求就好了婆跑。
數(shù)據(jù)庫(kù)報(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 '開源中國(guó)的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等博客