blogger2tumblrを作ったよ

tumblrのRSS取得が利用できなくなっていたので、
自分でRSSを取得してtumblrに投稿するプログラミングを作ったよ。
ちなみにbloggerだけでなく他のブログ、もしくはRSSをはきだす
Webサービスなら何にでも有効だと思うよ。

運用方法としては以下の通り。
  1. bloggerの設定>投稿をメール で「投稿をメールで送信」を選択
  2. 下記のソースをレンタルサーバなどにおいて1のメール通知でプログラムを起動
  3. RSSを取得して、tumblrに投稿
2.の設定は若干迷うかもしれないが以下のサイトを参考にするとすぐにできる
※僕はさくらインターネットではないので別の方法
さくらインターネットでリアルタイムメール処理
ソースは以下に記載しておくので自由に使ってくださいな
<?php
$feedurl = "対象URLのRSSフィード";

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_URL, $feedurl);
 $json = curl_exec($ch);
 curl_close($ch);

 $feed = json_decode($json, true);
 $data = $feed['feed']['entry'][0];

 $published = $data['published']['$t'];
 $title = $data['title']['$t'];
 $content = $data['content']['$t'];
 $category_array = $data['category'];

 $categories = array();
 for($i = 0; $i < count($category_array); $i++) {
    if($i == 0) {
        $categories = $category_array[$i]['term'];
    }
}
 
 $tumblr_email    = 'tumblrのログインメールアドレス';
 $tumblr_password = 'tumblrのログインメールパスワード';

 $post_type  = 'regular';
 $post_source  = $content;
 $post_tags  = $categories;
 $post_title = $title;

 $request_data = http_build_query(
     array(
         'email'     => $tumblr_email,
         'password'  => $tumblr_password,
         'type'      => $post_type,
         'title'     => $post_title,
         'body'    => $post_source,
         'tags'      => $post_tags,
     )
 );

 $c = curl_init('http://www.tumblr.com/api/write');
 curl_setopt($c, CURLOPT_POST, true);
 curl_setopt($c, CURLOPT_POSTFIELDS, $request_data);
 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
 $result = curl_exec($c);
 $status = curl_getinfo($c, CURLINFO_HTTP_CODE);
 curl_close($c);

?>
スポンサーリンク

0 件のコメント :

コメントを投稿