2009年2月5日木曜日

Blogger Data API

PHP による処理

Zend Google Data APIs client library をダウンロードし展開 

c:\php\php.ini の include_path に追加 

include_path = ".;c:\php\ZendGdata-1.7.3\library"



コマンドラインより実行 

C:\php\ZendGdata-1.7.3\demos\Zend\Gdata>c:\php\php Blogger.php -- --user=xxx --pass=xxxx 


Note: This sample may Create, Read, Update and Delete data stored in the account provided. Please exit now if you provi
ded an account which contains important data.

0 Tech memo
1 web2000

public function promptForBlogID()// 以下の処理で prompt を停止可
{
$query = new Zend_Gdata_Query('http://www.blogger.com/feeds/default/blogs');
$feed = $this->gdClient->getFeed($query);
$this->printFeed($feed);
//$input = getInput("\nSelection");
$input = "0";//0 Tech memo に固定

Selection: 0
Creating a post.
Creating a draft post.
Updating the previous post and publishing it.
The new title of the post is: Hello, world, it is.
The new body of the post is: There we go.
Adding a comment to the previous post.
Added new comment: I am so glad this is public now.
Adding another comment.~
Added new comment: This is a spammy comment.~
Deleting the previous comment.~
Printing all posts.
0 Hello, world, it is.
1 Hello, world!
2 Mambo / Install Maniax2008
3 Joomla! / Install Maniax2008
・・・~
23 multipart/form-data~
24 it's not found as __builtin__.instancemethod
Printing posts between 2007-01-01 and 2007-03-01.
Deleting the post titled: Hello, world, it is.

Blogger.php を元に
Blogger2.php を作成し転送処理を実行

SQL and GQL                                             TOP

is null from google.appengine.ext import db
r = db.GqlQuery ("SELECT * FROM model WHERE property=:1",None) # None is the python Null. / see
count(*) r.count()
like r = db.GqlQuery("SELECT * FROM model WHERE property >= :1 and property < :2 ", search_key, urllib.unquote(search_key).decode("utf8") + u"\uFFFD" )
update see
!=!= # see
dateyymm = '2008-05-10 22:22:22' # see ydate = datetime.datetime.strptime(yymm, '%Y-%m-%d %H:%M:%S')
日付検索 from datetime import *
import datetime
d1 = datetime.datetime.strptime('2008-06-01', '%Y-%m-%d')
d2 = d1 + timedelta(days=10)
r = db.GqlQuery("select * from model where date >=:1 and date <:2 ",d1,d2)
 for rr in r: print datetime.datetime.strftime(rr,'%Y-%m-%d %H:%M:%S')
Dates and Times
datastore viewer
http://localhost:8080/_ah/admin/datastore?kind=StockSum&order=-nikkei_max&order_type=float&num=100&start=0
referencesee (back-references), Many-to-many Join
key, key_name ,id Key names and IDs cannot be used like property values
× select * from Greeting where key = "xxxx"
× select * from Greeting where id = xxx
○ r = Greeting.get(db.Key.from_path('Greeting', id)) # or key_name
○ r = db.get("agpoZWxsb3dvcmxkcgsLEgRCbG9nGNQBDA")
key = r.key()
id = r.key().id()