PEAR XML_RPCでWordPressへのTwitterの自動投稿を作ってみた
最近毎日何か作らないと気が済まなくなっている感のある加藤です。都内某所で早朝ボランティアしてきたので意識が朦朧としながらも作りました。
読んで字のごとく、1時間おきにとりあえずTwitterポストを更新します。WordPressに自動投稿するのにPEARのXML_RPCというのを使ってます。PEARがちゃんとサーバで動かないもんだから、インストールからやり直して結構大変でした。
require_once('XML/RPC.php'); require_once('twitteroauth/twitteroauth.php'); // WordPressへの接続 $host = 'ホスト名'; $xmlrpc_path = 'XMLRPCへのパス'; $appkey = ''; $user = 'ユーザ名'; $passwd ='パスワード'; $c = new XML_RPC_client($xmlrpc_path, $host, 80); $appkey = new XML_RPC_Value($appkey, 'string'); $username = new XML_RPC_Value( $user, 'string' ); $passwd = new XML_RPC_Value( $passwd, 'string' ); $message = new XML_RPC_Message( 'blogger.getUsersBlogs',array($appkey, $username, $passwd) ); $result = $c->send($message); if(!$result){ exit('Could not connect to the server.'); } else if( $result->faultCode() ){ exit($result->faultString()); } $blogs = XML_RPC_decode($result->value()); $blog_id = new XML_RPC_Value($blogs[0]['blogid'], 'string'); // Twitter $user = ''; $consumer_key = 'Consumer Key'; $consumer_secret = 'Consumer Secret'; $access_token = 'Access Token'; $access_token_secret = 'Access Token Secret'; $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $number = fopen('twitter_since.txt', 'r'); $currentnumber = fgets($number); fclose($number); $since_id = "since_id=".$currentnumber; $result = $to->OAuthRequest('http://api.twitter.com/statuses/user_timeline.xml?'.$since_id,'GET',array('count'=>'30')); $xml = simplexml_load_string($result); $cnt = 0; foreach( $xml->status as $value ){ if ($cnt < 1) { $status_number = $value->id; } $text = $value->text; if (empty($post)) { $post = '<li>'.$text.'</li>'; } else { $post .= '<li>'.$text.'</li>'; } $cnt++; } if(!empty($status_number)){ $number = fopen('twitter_since.txt', 'w'); $status = fwrite($number, $status_number); fclose($number); } // WordPressへの投稿 if(!empty($post)) { $title = date('Y-m-d H:i'); $categories = array( new XML_RPC_Value('Twitter', 'string'), ); $post = '<ul>'.preg_replace('/(https?|ftp)(://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)/', '<a href="\1\2">\1\2</a>', $post).'</ul>'; $description = $post; $content = new XML_RPC_Value( array( 'title' => new XML_RPC_Value($title, 'string'), 'categories' => new XML_RPC_Value($categories, 'array'), 'description' => new XML_RPC_Value($description, 'string'), 'wp_slug' => new XML_RPC_Value(date('Y-m-d H:i:s')), 'dateCreated' => new XML_RPC_Value(time(), 'dateTime.iso8601') ), 'struct'); $publish = new XML_RPC_Value(1, 'boolean'); $message = new XML_RPC_Message( 'metaWeblog.newPost', array($blog_id, $username, $passwd, $content, $publish) ); $result = $c->send($message); if(!$result){ echo 'test2'; exit('Could not connect to the server.'); } else if( $result->faultCode() ){ exit($result->faultString()); } }
デザインはそのうちやります。

加藤 康祐 / 企画・設計
プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。
是非、フォローしてください!
Twitter / Instagram
『ひとり仕事: フリーランスという働き方』 加藤 康祐
posted with amazlet at 15.09.10
(2012-10-5)
売り上げランキング: 14,705
100円
売り上げランキング: 14,705
100円
Amazon.co.jpで詳細を見る
フリーランスとして働き始めるってどういうことだったのか?フリーランスとして働くってどういうことなのか?フリーランスが目指すことってなんなのか?5年間の自分の経験から書きました。(2010年執筆)
フリーランスとして働き始めるってどういうことだったのか?フリーランスとして働くってどういうことなのか?フリーランスが目指すことってなんなのか?5年間の自分の経験から書きました。(2010年執筆)