G+の投稿からリンク(URL)を取得する (PythonにてGoogle Plus APIの利用例)

Google

Google + のActivity(投稿のこと?)を抽出して、添付情報でURLが付いているものを取得する方法を考えます。

先日の matu さん作の gr2e.sh ( Googleリーダで共有した記事を(ほぼ)全文化し自動でEvernoteに保存する! 〜 スクリプト公開 | matuダイアリー ) の中間ファイル urls に似た形式で出力して send_en.pl を利用してもいいんじゃないのかと思っている所です。時間があればその辺りも全て Google App Engine 辺りで書きなおして利用できればいいかと思うのですが時間もないのでとりあえずAPI(python)を使ってみたメモを備忘録的に書いておきます。

複数の言語ライブラリとかあるので選択肢は多いのですがここではPythonを使用してデータを取得してみます。個人的にPythonはあんまり使用したこと無いのですがGoogleAppEngineとかでも利用可能なのでこの際背に腹は代えられないということで。

以下のサイトが非常に役立ちます。

Google+ APIをPythonから使用する方法 ≪ 突然消失するかもしれないブログ

 

環境

・Windows XP
・Python 2.7.2  Releases
・setuptools setuptools 0.6c11 : Python Package Index

※環境変数PATHに python導入ディレクトリのパスを指定しておきます  (ex: c:\python27 )

 

APIの準備

今回はPython用のライブラリを使用しますがその他のライブラリなどはhttps://developers.google.com/+/downloads からダウンロードすることができます。

http://code.google.com/p/google-api-python-client/downloads/list

・oauth2client-1.0beta6
・google-api-python-client-1.0beta6

を今回は使用しました。ダウンロードした圧縮ファイルを解凍した後にインストーラの実行を行います。実行にはコマンドプロンプトで実施します。

> python setup.py install

これで導入ができます(※要 setuptools )

 

APIキーなどの準備

先ほど紹介たリンク先の方法にキーの取得方法が記載されています。今後のことも考えて Oauth方式での接続を行うことにしたいと思います。サンプルのスクリプトもこの方法ですので。

https://code.google.com/apis/console/

こちらからGoogle関連のAPIを全て制御することができます。
※参考 Google+ APIをPythonから使用する方法 ≪ 突然消失するかもしれないブログ

 

サンプルの取得

http://code.google.com/p/google-plus-python-starter/

こちらにサンプルがあります。ダウンロードから取得できるソースはBugっていて正しく情報を取得できないです。http://code.google.com/p/google-plus-python-starter/source/browse/cli/plus_cli.py が最新の状態に成っていますので取得します。

次に、先ほどのAPI_KEYや、CLIENT_ID等を設定する settings.py を編集します。注意としては変数は””で囲みましょうという点。以下のような形になります。

CLIENT_ID = "***********.apps.googleusercontent.com"

データの取得を行なってみる

Google + のActivity情報のうち、添付でURLが付いている物(基本的には+1ボタンでコメントしたものがここにあると思っています)をリストアップするようにサンプルの plus_cli.py を修正したものを github に載せておきます。 サンプルと置き換えて使ってみてください。

https://github.com/tokida/plus-url/blob/master/plus_url.py

実際に取得できるデータは、Activities – Google+ Platform — Google Developers に記載されています。

 

出力はカレントディレクトリに urls というファイルで以下のように吐き出されます。

z13ehxordlfzglden23xel3wrxudzjezt04 http://ameblo.jp/lim-untlim/entry-11065958332.html Reshared post from hayori uno これはヒドい気がする。
z12gjtugdum5ydcla23xel3wrxudzjezt04 http://gigazine.net/news/20111104_tpp/ 後で読む
z13bddciopahfhwdt23xel3wrxudzjezt04 http://jp.techcrunch.com/archives/20111103googles-new-algorithm-update-impacts-35-of-searches/ 興味深いな。うちのサイトとか何の関係もないけど

 

あとがき

とりあえずPythonでデータを取得するとこまでは出来たので後は、キチンと重複しないで取得することと、データをInstapaperとかRead It Laterに送って簡易全文かした後にEvernoteに送るとBestですな。Evernoteのアカウントが無償版だとメールでの登録には制限があるのでAPI経由で行えばいいのかな?昨日のエントリーで絵を載せておいたけど一応はG+の情報は自動的にEvernoteに取り込めているのでのんびりと遊んでいきたい。

それときっと @hiro45jp さんが神対応でなんとかしてくれると信じているFocusHTML(ShareHtmlとFocusHtmlもリニューアルしました♪ | 普通のサラリーマンのiPhone日記 )ですがつなぎ程度にはなにか作れるのかもしれません。本来はあまり色々なサービスを経由しないで一気に色々やったほうがインターネットのコストも減るしリスクも少ないので。

 

 

謝辞、参考

Googleリーダで共有した記事を(ほぼ)全文化し自動でEvernoteに保存する! 〜 スクリプト公開 | matuダイアリー
ShareHtmlとFocusHtmlもリニューアルしました♪ | 普通のサラリーマンのiPhone日記
Google+ APIをPythonから使用する方法 ≪ 突然消失するかもしれないブログ

上部へスクロール