すべてのツイッター文をペイスブックページで自動発行する
*この方法は開発者に相応しい方法だ.
私は元々 RSS Graffitiを利用してツイッター文をペイスブックページに送った. RSS Graffitiはこの過程をよく処理してくれた. ところで 2012年 10月 15日からそのサービスが腰砕けになった. ツイッターの API 政策変更のためだ. ツイッター認証を受けなければツイッター APIを使うことができないと言う.
それで私が新しく近付いた方法はツイッターの RSS ピドを再加工して RSS Graffitiに伝達する方法だ. こんな方法なしにツイッター文をペイスブックページに送ろうと思うからまともに支援するのを捜しにくくて私が直接したことだ.
一応, サーバーで cURLを支援しなければならないしウェップサーバーがなければならない. ただウェップサーバー捜してみればたくさんあるからウェップサーバーがない開発者でもそうなのを活用すれば良いつもりだ.
RSS Graffiti 使い方は別に使わなかった. ペイスブックで検索してエブ設置してセッティングすれば良い. 開発者なら説明なしにできるだろう. ページ勘定ではなくそのまま使用者勘定だけで使うことができたら参照.
私のツイッター RSSを持って来て加工してくれる PHP ファイル作り
自分のツイッター RSSは今日の(2012年 10月 21日) 基準で下の形式だ.
http://api.witter.com/1/statuses/user_timeline.rss?screen_name=私のid
上の私のid 部分にそのまま自分のアイディーを使えば良い.
cURLを利用してツイッターピドを掻いた後 PHPの SimpleXML 派書を利用して加工した. コードは下のようだ.
//圧縮送信でトラフィックを節約する. ob_start("ob_gzhandler") //コンテンツ種類が RSS+XMLでエンコードが utf-8だと知らせてくれる. header("Content-type: application/rss+xml; charset=utf-8") //テキストであるリンクに a タグ付けて実際リンクで作ってくれる関数 function linkfy($s) { return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1">$1</a>', $s) } // テキストを受けて一番目で出る URLをリターンしてくれる関数だ. function extract_link($s) { preg_match('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.-]*(\?\S+)?[^\.\s])?)?)@', $s, $matches) if( count($matches) > 0 ){ return $matches[0]; }else{ return FALSE; } } // 私のツイッター RSS $url = 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=my_twitter_id'; // cURLでツイッター RSS XMLを受けて来る. $ch = curl_init() curl_setopt($ch, CURLOPT_URL, $url) curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) $tweets = curl_exec($ch) curl_close($ch) // SimpleXMLを利用して XMLを PHP 客体と配列で作る. // http://www.php.net/manual/en/simplexml.examples-basic.php 参照 $xmldom = new SimpleXMLElement($tweets) $item_count = count($xmldom->channel->item) // ツイッター文にリンクがあれば RSSの目的地 URLをそのリンクで取り替える. // このようにしなければ RSSの目的地 URLがツイッター文になる. for($i = 0; $i < $item_count; $i++){ $desc = $xmldom->channel->item[$i]->description; $new_guid = extract_link($desc) //リンクが切られて入って行く場合がある. リンク永遠に検事. if( $new_guid AND strlen($new_guid)>19 ){ $xmldom->channel->item[$i]->guid = $new_guid; $xmldom->channel->item[$i]->link = $new_guid; } if( strlen($new_guid)>19 ){ $xmldom->channel->item[$i]->description = linkfy($desc) } } //SimpleXML 客体を XML 文字列に変えて出力する. echo $xmldom->asXML()
上コードを適当なファイルを作って入れる. twitter-rss.php
なんかで言葉だ. そして RSS Graffiti エブに行って上の URLを入れてくれる. それで私のツイッター RSSの URLは mytory.local/twitter-rss.php
がなった.
私の設定結果は下のイメージを参考する.
- コメント機能はありません。コメントの代わりに[email protected]
にメールを送ってください。