欢迎使用自行搭建的贴吧云签到;如发现本模板问题请告诉我,thx

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

wordpress honeyshine 1924℃ 0评论
    是因为我不在这个专业吗,我突然觉得网络真是麻烦,特别是编程序来实现某种功能,不过如果有时间我会去学习一下的,毕竟自己的程序才能让自己放心,没广告,没垃圾,而且知道哪条指令是做什么的。

前天注册了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!!!!!!!!

转载请注明:记忆反射弧 » Twitter,Facebook,Tumblr同步国内各网站方法

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址