2008/01/28

PythonからGoogle Calendarのデータを取得

PythonからGoogle Calendarのデータを取得するサンプルを作成したので掲載します。後日、時間があればGoogle Calendarのデータを操作するサンプルを掲載したいと思います。



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import codecs
import gdata.calendar.service;

sys.stdout = codecs.getwriter('cp932')(sys.stdout)

SOURCE = "RiverStone"

email = "XXXX"
password = "XXXX"

service = gdata.calendar.service.CalendarService()
service.email = email
service.password = password
service.source = SOURCE
service.ProgrammaticLogin()

feed = service.GetCalendarEventFeed()

for entry in feed.entry:

# タイトル
print entry.title.text

# 日時
for date_and_hour in entry.when:
print date_and_hour.start_time
print date_and_hour.end_time

# 場所
for place in entry.where:
print place.value_string

# 説明
print entry.content.text


ラベル: ,

2008/01/23

PythonからGoogleSpreadsheetを更新する

Pythonから「gdata-python-client」を使用してGoogleSpreadsheetの値を更新することができます。簡単なサンプルを作成いたしましたので下記に掲載します。

※プログラムに定義されている変数に適切な値を設定してください。

_username: GoogleAccountのメールを設定します。
_password: GoogleAccountのパスワードを設定します。
_key: GoogleSpreadsheetにアクセスした際のURLに表示される「key」の値を設定します。


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import codecs
import gdata.spreadsheet.service

sys.stdout = codecs.getwriter('cp932')(sys.stdout)

# GoogleAccountのメール
_username = "xxxxx"

# GoogleAccountのパスワード
_password = "xxxxx"

# SpreadsheetのURLに表示される「key」の値 ccc?key=
_key = "xxxxx"

service = gdata.spreadsheet.service.SpreadsheetsService()
service.email = _username
service.password = _password
service.source = "RiverStone"
service.ProgrammaticLogin()


worksheets = service.GetWorksheetsFeed(_key)
sheet_ids = []

for entry in worksheets.entry:
sheet_ids.append(entry.id.text.split("/")[-1])

for index in range(1, 10):
service.UpdateCell(index, index, str(index * index), _key, sheet_ids[0])

更新対象となるスプレッドシートを開いた状態で上記のプログラムを実行すると、リアルタイムで値が設定されるようです。見ていると面白いですね。

ラベル: ,

2008/01/18

Pythonを使用してBloggerのデータを取得

PythonにはGoogle Data APIのパッケージ(gdata-python-client)が提供されているので比較的簡単にBloggerのデータを取得することができます。

簡単なサンプルを作成したので掲載します。

動作環境として、Pythonのバージョンは2.5、gdata-python-clientのバージョンは「1.0.10.1」を使用します。また、変数「username・password・blogid」は適切な値に置き換えてください。


# -*- coding: utf-8 -*-

try:
from xml.etree import ElementTree # for Python 2.5 users
except:
from elementtree import ElementTree

from gdata import service
from gdata.service import Query
import gdata
import atom
import getopt
import sys
import codecs

sys.stdout = codecs.getwriter('cp932')(sys.stdout)

username = "xxxxxx"
password = "xxxxxx"
blogid = "xxxxxxxxxxxxxxxxxxx"

service = service.GDataService(username, password)
service.source = 'RiverStone'
service.service = 'blogger'
service.server = 'www.blogger.com'
service.ProgrammaticLogin()

query = Query()
query.feed = '/feeds/' + blogid + '/posts/default'
feed = service.Get(query.ToUri())

# ブログのタイトルを出力
print feed.title.text

# 投稿した記事のタイトル・内容・タグを出力
for entry in feed.entry:

print "--------------------------------------"
print "title: " + entry.title.text

tags = ""

for category in entry.category:
print "tag: " + category.term

print unicode(entry.content.text)[0:20]

print "--------------------------------------"


私の環境では、下記のデータが出力されました。

Develogger
--------------------------------------
title: Pythonを使用してBloggerのデータを取得
tag: Python
tag: GoogleDataAPI
PythonにはGoogle Data
--------------------------------------
--------------------------------------
title: Googleの証明書の期限が・・・
tag: Google
今日の昼過ぎにGmailにアクセスしたと
--------------------------------------

ラベル: ,