Category
- 1/43 Car's (246)
- Bouldering (14)
- Camera (32)
- Computer (41)
- Everyday (134)
- Goods (12)
- Linux (49)
- Music (32)
- Photo (65)
- Plant (33)
- Plastic Model (58)
- Trekking (43)
- WordPress (35)
It's blog written about Trekking ,1/43 MiniCar , Plastic Model , Photo , Computing.
RSSGoogl+のつぶやきを自動的にTwitterにつぶやくPHPを作りました。
私は、Google+・Twitter・mixi・Facebookを多用していますが、
それぞれに、近況の報告をするのは面倒なので、
Google+→Twitter→mixiの順に連携しています。
Googl+のつぶやきをTwitterにつぶやくには、公開されている
RSSフィードサービスを利用して、dlvr.it等の投稿サービスを
利用するのが一般的ですが、最近RSSフィードのサービスが
中止になったり、反映する時間がかかったりと、何かと問題が有ります。
自宅サーバーを稼動させているならば、自宅サーバーでRSSフィードと
Twitterへの投稿が出来ないものか模索していました。
●必要な前準備
・Googl+の
「ID・APIキー」
を取得します。
・URLを短縮するために bitly の
「APIキー」
を取得します。
・Twitterの
「Consumer key・Consumer secret・Access token・Access token secret」
を取得します。
各キーの取得はググると色々出てきますので、そちらをご参照ください。
●Google+のRSSフィード生成の作成
当初Google+の公式APIを使用したこちらのプログラムを利用させて頂きましたが、
ブラウザからは所得できるのですが、サーバーのコマンドラインからは所得できませんでした。
(原因は不明ですが、おそらく認証ができてないと思われます)
色々ググったら、URLのパラメータで指定取得できる方法を見つけました。
参考にさせて頂いたのはこちらです。
・Google+の自分の投稿内容(JSON)をPHPで取得して別のサーバーに保存する
・Google+ APIで取得したJSONデータをフィード形式に加工する
JSON形式で取得した後、RSS(Atom)フィード形式へ変換する部分を改造します。
上記2つのソースを良く眺めて、統合して、ファイル出力の箇所を以下の行に変更しました。
$obj = json_decode($gplus_data);
print_r( change_gdata_to_feed($obj) );
public_htmlの下にフォルダを作って、作成したファイルをinidex.phpとして保存して、
正しくフィードされるか確認します。
●Twitterへの書き込みプログラムの作成
次にTwiiterへの書き込みですが、こちらを利用させて頂きました。
・Google+の投稿をTwitterに同期するPHPスクリプト※追記あり
事前に取得した、Twitter・bitlyのキー・先にを記述し、
Feed URLにはindex.phpを格納したURLを指定します。
特に改造無くTwitterへの書き込みが出来たので、
このPHPプログラムをCRONで定期的に動作させれば終わりです。
一般のRSSフィードサービスは取得間隔を短くすると、負荷が掛かるので
余り短く出来ませんし、エラーを返す場合も有ります。
(dlvr.itでは最低15分間隔)
自宅サーバーを利用しているユーザーは私一人ですので、RSSフィードの実行間隔は短く出来ます。
これで、Twitterへの投稿も早くなり、RSSフィードサービスの停止を心配する事も無くなりました。