2011年8月19日金曜日

Google+の投稿をTwitterに同期するPHPスクリプト※追記あり

Google+TwitterのPOSTを同期るためのPHPスクリプト Gplus2tweet を公開します。

Twitterfeeddlvr.it でも同じことはできるのですが、更新間隔が不規則なので
リアルタイムで更新させるためにスクリプトを使うことにしました。

G+ 側で書いたことが2時間後にTwitterにポストされても意味がないですからね。

自分用なので使いづらいかもしれませんが、使ってみたい方は自由にどうぞ。

OAuth認証は、既存のライブラリを使わせてもらいました。
スクリプトと同梱してありますが、仕様変更などで使えなくなる可能性があります。
その時は、作者さんが最新版を公開していないか確認してみましょう。


OAuth認証用ライブラリ
https://github.com/abraham/twitteroauth/tree/master/twitteroauth/


Gplus2tweet
http://goo.gl/o3pKI

Gplus2tweetのスクリプトです。
Googleドキュメントにアップしました。
左上にある「ファイル」をクリックするとダウンロードする項目があります。

ダウンロードすると、中身は下記のようになっています。

  • post.php スクリプト本体
  • config.php  設定ファイル
  • tmp.tsv 一時保存ファイル(666)
  • twitteroauth(ディレクトリ) OAuth認証用ライブラリ

仕組みはいたって簡単です。
http://plusfeed.appspot.com/ からGoogle+ のフィードを取得して、
そのフィードから最新の書き込みをTwitterにポストするだけです。

まずは、自分のフィードを取得しましょう。
Google+ のプロフィールを開くと、下記のようなURLになっています。
https://plus.google.com/103675541773512732833/posts (これは私のプロフィールです)

上記URLの数字部分を http://plusfeed.appspot.com/ の後ろにつけるだけです。

こんな感じですね。
http://plusfeed.appspot.com/103675541773512732833

このフィードURLを、スクリプトの設定ファイル「config.php」の指定箇所に記入してください。

その次は、コチラからTwitterでアプリケーションの登録をします。

Consumer key
Consumer secret
Access Token (oauth_token)
Access Token Secret (oauth_token_secret)

上記4つを取得してください。

一つ気をつけてほしいのが、OAuth settings の中の Access level です。

これは必ず Read and Write 以上の権限を与えてください。
Read only だとポストができません。

ここで取得した4つのキーをconfig.phpの該当部分に記入します。

次は URL を短縮するために bitly のAPIキーを取得します。
アカウント登録後、setting のページから取得できます。

これで必要なキーはすべてそろいました。

あとは、PHPの使えるサーバーにアップロードして、CRONなどで定期実行してください。

Windows環境の人は、Xampp などのサーバーアプリケーションをインストールし
batchファイルをタスクスケジューラで実行すると良いと思います。

実行間隔はあまり短くしないで下さいね。
http://plusfeed.appspot.com/のサーバーにとんでもない負荷が掛かってしまいます。

このスクリプトでは、http://plusfeed.appspot.com/のフィードを使うことが前提なので、
Atom形式のフィードしか処理できません。

RSS版はそのうち公開します。


----------追記----------

RSSを処理出来るようにするには、61~66行目を下の様に書き変えて下さい。

$feeds = array();
foreach ($xml->channel->item as $item){
    $feeds[(String)$item->link] = (String)$item->title;
}

RSSの方が汎用性は高いと思います。



0 件のコメント:

コメントを投稿