Twitter,Facebook,Tumblr同步国内各网站方法

    是因为我不在这个专业吗,我突然觉得网络真是麻烦,特别是编程序来实现某种功能,不过如果有时间我会去学习一下的,毕竟自己的程序才能让自己放心,没广告,没垃圾,而且知道哪条指令是做什么的。
 
    前天注册了IFTTT账号,刚注册完还不会用,借助别人分享的Recipe来构建自己的同步和实现twitter的定时预报天气,后来发现我想实现的某种功能很难搜得到,所以试着自己建一个,其实也很简单的,只是有种人叫做-新手,而我也是新手,不过现在还好了。

    昨天突然想把twitter和国内的weibo实现同步,可是因为是国内的微博,所以IFTTT为了它自身的服务质量而且国内各种网络监察和防火墙,这种同步就变得艰难,最终得出一个方案:搭建一个wordpress(有免费的我最后给出),用搭建的wordpress作为中转,而这时IFTTT是支持twitter同步到wordpress的(Recipe点此,我设置的是原创时转,所以评论的转推是不会同步的),Facebook,Tumblr也是如此,下面是一样的。这只是完成了一个中介;

    下一步就需要把wordpress(申请wp教程里面的博客内容同步到各个微博里面,这个过程可以借助wordpress里面的插件来实现,我一共测试了两个插件:

     一,wp-sns-share
         此插件经测试可以实现手工发布的博文,但是对于IFTTT自动发布的文章是不会自动转发的,所以我放弃了,如果你是自己手工更新的可以选择。

     二,微博通同步新版
        此插件经测试可以很好的实现上述功能,而且延时目测很短,设置起来的时候只需要把你注册的微博通账户登录即可,缺点就是还需要额外去申请微博通账户,而且自动发布的微博显示“由微博通发布”,而且他对于新浪微博所得到的授权有时间限制:30天,其实也还算好,大不了过一个月全新授权一次

     三.代码方式(20140320补充,来自 +King Goo 的博客 
这种方法需要使用新浪的接口,如下操作:
1)到新浪微博开放平台创建一个站内应用http://open.weibo.com/apps/new?sort=app,通过不通过审核都可以,只不过通过的话可以在微博下方显示来自某某应用,如来自某博客 ,具体怎么创建你可以在谷歌上搜索一下,很简单(但如果你一直没有通过审核,还想通过审核的话,我可以提供有偿帮助嘎嘎~),创建好应用后,下面需要使用到申请应用的 App Key;
2)编辑你主题的functions.php文件,在其最后加入如下代码
// 微博同步
function post_to_sina_weibo($post_ID) {
  if( wp_is_post_revision($post_ID) ) return;
    $get_post_info = get_post($post_ID);
    $get_post_centent = get_post($post_ID)->post_content; 
    //去掉文章内的html编码的空格、换行、tab等符号(如果你文章的编码格式是这样子,可以将下面的"//"去掉即开启此功能)
    //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent)));
    $get_post_title = get_post($post_ID)->post_title;
  if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
    $request = new WP_Http;
    $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ;
    $api_url = 'https://api.weibo.com/2/statuses/update.json';
    $body = array( 'status' => $status, 'source'=>'4135063399');
    $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' );
 /*
 如果你使用改方法,请注释掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' );
 换成如下代码
 //你的新浪微博登陆名
 $username = '' ;
 //你的新浪微博登陆密码
 $password = '' ;
 $headers = array( 'Authorization' => 'Basic ' .  base64_encode('$username:$password'));
 */ 
    $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) );
    }
}
add_action('publish_post', 'post_to_sina_weibo', 0);
大概一般都应该知道是什么意思吧
if( wp_is_post_revision($post_ID) ) return;
//如果是修订版本$get_post_info = get_post($post_ID);
//获取该文章信息
$get_post_centent = get_post($post_ID)->post_content;
//文章内容(不知道为什么在使用获取全部post_ID数据后没办法得到content,所以单独在请求下)
$get_post_title = get_post($post_ID)->post_title;
//文章标题
if ( $get_post_info->post_status == ‘publish’ && $_POST['original_post_status'] != ‘publish’ ) {
//判断是不是已经发表的文章或页面
$status = ‘【’ . strip_tags( $get_post_title ) . ‘】 ‘ . mb_strimwidth(strip_tags( apply_filters(‘the_content’, $get_post_centent)),0, 132,’…’) . ‘ 全文地址:’ . get_permalink($post_ID) ;
// strip_tags( $get_post_title ) 是获取文章标题

// mb_strimwidth(strip_tags( apply_filters(‘the_content’, $get_post_centent)),0, 132,’…’) 是截取文章的长度

// get_permalink($post_ID) 该文章链接地址
//老接口用不了了,必须用v2.0
$body = array( ‘status’ => $status, ‘source’=>’4135063399′);
// $status 要发布的微博文本内容,内容不超过140个汉字

// $source 数值为应用的AppKey
$headers = array( ‘Authorization’ => ‘Basic ‘ . ‘bate64编码加密’ );
//这里的’bate64编码加密’位置,你自己到http://www.mxcz.net/tools/base64.aspx自己把你的帐号密码进行一下加密,格式是你新浪微博的登陆帐号:登陆密码(如,username@gmail.com:password)
//如果不喜欢这么使用$headers = array( ‘Authorization’ => ‘Basic ‘ . ‘bate64编码加密’ ),就替换使用下面这个方法也可以,一样

//你的新浪微博登陆名

$username = ” ;

//你的新浪微博登陆密码

$password = ” ;

$headers = array( ‘Authorization’ => ‘Basic ‘ . base64_encode(‘$username:$password’));


最后会在你发送博文后,马上同步一条信息到微博上

该微博接口请求参数:
必选
类型及范围
说明
source
false
string
采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey
status
true
string
要发布的微博文本内容,必须做URLencode,内容不超过140个汉字。
visible
false
int
微博的可见性,0:所有人能看,1:仅自己可见,2:密友可见,3:指定分组可见,默认为0。
access_token
false
string
采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。
list_id
false
string
微博的保护投递指定分组ID,只有当visible参数为3时生效且必选。
lat
false
float
纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0。
long
false
float
经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0。
annotations
false
string
元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博可以包含一个或者多个元数据,必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定。
 
 这几乎就是这两天做的事情,为了测试这个同步我都成了话痨了,昨天刷了好长时间的屏,嘿嘿。
   
    还有一个twitter机器人bot,可以实现某些关键词的自动回复和自动发tweet以及定时发tweet,,网址:点此。有英文和日文两种语言,看一下应该都会操作的。

 
 




     接下来可以看一下我同步的结果,我的twitter,我的wordpress,我的新浪微博,我的腾讯微博,因为那个twitter的图片都是以链接形式出现的,所以对于有图片的tweet,同步的时候会出现错误:缺少或丢失。


 

 最后吐槽一下:尼玛的FGW!!!!!!!!

特别说明

由于众所周知的原因,本博客以往文章的图片无法显示,请谅解。

标签

生活纪实 (191) 感想 (113) ingress (54) 软件 (49) 小诗 (35) 梦境 (28) 教程 (21) 科幻 (21) 体会 (20) 杭州 (11) blogger (5) wordpress (5) Google adsense (4) Google voice (3) Chrome (2) Tensorflow (1) 谷粉 (1)

博客归档