我们技术人一般都会有自己的一个博客,用于记录一些技术笔记,也期望自己的笔记文章可以让更多人知道。

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

  • 搜索引擎收录,用户通过关键词搜索可能会进入

  • 内容运营,但是一般技术人为了文章做运营的人应该没有几个

  • 通过大流量同类型网站导流量

我是使用 方法一 和 方法三,方法一就不说了,互联网人都知道了,但是小网站效果不会太好了。方法三就是充当复读机:复制 和 粘贴  到其他技术网站

“复制 和 粘贴  到其他技术网站” 收起来容易,这TM就是个体力活呀,谁愿意自己写了一篇文章 再占用半个小时,同步到各个技术网站和论坛。

我这次记录的就是如何简单方便的同步管理?MetaWeblog,对就是这个名词,这也是一个协议,我所知道的各大技术网站基本都实现了这个协议,通过这个协议我们就可以向各大技术网站通过接口直接同步博客。作为一个技术人员还是要与时俱进,时刻学习呀,我是偶然有这个想法查阅了一些资料知道了这个协议,但是这个协议于2002年都被提出来了,直到今天才知道,真是羞愧呀

MetaWeblog 客户端 也是基于Http协议的,数据报文是XML的,也就是按照规定的XML格式,发送Http 请求就好了。

数据库报文格式可以参考官网说明:http://xmlrpc.scripting.com/metaWeblogApi.html

官方有个xml例子可以参考:http://cyber.law.harvard.edu/blogs/gems/tech/sampleMetaweblogCall.txt

MetaWeblog有几个常用Api

Api名称 描述
metaWeblog.newPost 发布新的文章
metaWeblog.editPost 编辑文章
metaWeblog.getPost 获取文章
metaWeblog.getRecentPosts 获取近来的文章
metaWeblog.getCategories 获取类目

基础脑补忘了,说实现架构吧

1.我新建了两个相关表  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 '状态:-1: 待运行 0: 失败 1:成功',
  `updated_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最后一次更新时间',
  `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='博客同步队列';
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 '网易博客的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 '最后一次更新时间',
  `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='本站blog_id 与其他同步站点的id关系';

2.每次博客变动我都会在blog_sync_queue插入一条记录,例如 表示想cnblogs提交我个人博客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.写一个php 脚本,配置crontab每5分钟运行一次

此脚本就是从blog_sync_queue 查询 status = -1 的结果集,然后通过MetaWeblog接口提交到指定网站

关于几个博客metaweblog api地址如下

地址 描述
http://imguowei.blog.51cto.com/xmlrpc.php 51cto
http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php sina (已关闭)
https://mp.csdn.net csdn(每日20篇,目前无法同步)
http://os.blog.163.com/word/ 163 (已关闭)
https://my.oschina.net/action/xmlrpc oschina 
https://rpc.cnblogs.com/metaweblog/apanly cnblogs
http://blog.chinaunix.net/xmlrpc.php?r=rpc/server chinaunix (已关闭)

下面搞几张截图,观赏下自动复读机的效果

PS1:csdn还没有实现,主要是csdn有时候好像服务器metaweblog有问题,还在继续研究中

PS2:csdn已经可以同步啦,目前发现每次只能同步20篇文章,并且还要特殊处理,就是发送文章接口做对csdn 特地加入 blog_id 为一个特定值,具体代码请前往github查看

关于metaweblog协议 实现:https://github.com/apanly/metaweblog

有兴趣的朋友可以通过本站关于通过邮件和wechat联系我

原文地址:MetaWeblog 同时管理51cto,csdn,sina,163,oschina,cnblogs等博客
标签:metaweblog   51cto   csdn   sina   163   oschina   cnblogs   xmlrpc   api

智能推荐

MetaWeblog 同时管理51cto,csdn,sina,163,oschina,cnblogs等博客的更多相关文章

  1. MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  2. Python 2.7_爬取CSDN单页面利用正则提取博客文章及url_20170114

    年前有点忙,没来的及更博,最近看爬虫正则的部分 巩固下 1.爬取的单页面:http://blog.csdn.net/column/details/why-bug.html 2.过程 解析url获得网站 ...

  3. CSDN怎么一键转载别人的博客

    在参考"如何快速转载CSDN中的博客"后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记. 参考 ...

  4. MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

    MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...

  5. [转载]关于CSDN, cnblog, iteye和51cto四个博客网站的比较与分析

    CSDN:http://blog.csdn.net/ cnblog: http://www.cnblogs.com/ iteye: http://www.iteye.com/blogs/ 51cto: ...

  6. 关于CSDN, cnblog, iteye和51cto四个博客网站的比较与分析

      http://blog.csdn.net/pkucl1/article/details/6629819 CSDN: http://blog.csdn.net/ cnblog: http://www ...

  7. JavaMetaweblogClient,Metaweblog的java实现-从此上传博客实现全平台

    目录 1. 什么是Metaweblog? 2. Metaweblog的应用 3. 如何使用Metaweblog 4. 本项目介绍 4.1 metaweblog与java之间的关系映射 4.2 使用Ja ...

  8. 常用博客Metaweblog Api地址

    常用博客Metaweblog Api地址 CSDN: http://write.blog.csdn.net/xmlrpc/index 博客园(cnblogs):http://www.cnblogs.c ...

  9. 基于Metaweblog API 接口一键发布到国内外主流博客平台

    之前的生活 之前一直使用evenote写博客和日志,其实还是挺方便的.但是我一直都希望能够同步到国内的博客和国外的blogspot等主流博客平台.而强大everote只提供了facebook.twit ...

随机推荐

  1. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网

    7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言.它也经常被用作通用编程语言.在最小化安装的 CentOS 中安装 PHP: # yum install php 安装完 php ...

  2. Hadoop开发中,如何开启、关闭控制台打印调试信息

    第一种方法: 修改$HADOOP_CONF_DIR/log4j.properties文件 hadoop.root.logger=ALL,console 第二种方法 开启:export HADOOP_R ...

  3. 如何扫描出Android系统媒体库中视频文件

    Android系统启动时会去扫描系统文件,并将系统支持的视频文件(mp4,3gp,wmv)扫描到媒体库(MediaStore)中,下面代码演示如何获得这些文件的信息: publicstatic Lis ...

  4. eclipse常用快捷键,这个只要新学会的常用的会陆续更新的。

    1.Ctrl+Shift+O     引用包 2.Ctrl+Shift+F      格式化代码 3.Ctrl + /  注释和解除注释代码 4.Ctrl+M  代码最大最小化 5.ctrl+shif ...

  5. BZOJ3881 : [Coci2015]Divljak

    对Alice的所有串构造AC自动机,并建出Fail树 每当Bob添加一个串时,在AC自动机上走,每走到一个点,就把它到根路径上所有点的答案+1 需要注意的是每次操作,相同的点只能被加一次 所以在需要操 ...

  6. storm环境搭建(前言)—— 翻译 Setting Up a Development Environment

    Setting Up a Development Environment 搭建storm开发环境所需步骤: Download a Storm release , unpack it, and put ...

  7. 数据仓库原理<1>:数据库与数据仓库

    updated 2015.8.27 updated 2015.8.26 updated 2015.8.23 0. 说明 <数据仓库原理>系列博文,是笔者在学习数据仓库与商业智能时的读书笔记 ...

  8. 蒟蒻修养之tc蓝名计划

    开一个新坑......(听说tc是智商高的人才能玩的QAQ显然我是被屠的... 1 [645DIV2]这个能说是裸模拟吗... 弃坑= =做了一些题感觉没必要放上来了= =等div1先吧....... ...

  9. BZOJ3238: [Ahoi2013]差异 (后缀自动机)

    Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ...

  10. MySQL索引分析与优化

    1.MySQL能够在name的索引中查找“Mike”值,然后直接转到数据文件中相应的行,准确地返回该行的 peopleid(999).在这个过程中,MySQL只需处理一个行就可以返回结果.如果没有“n ...