Repository URL to install this package:
|
Version:
2.1.0.jo1 ▾
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module gdata.photos.service</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="gdata.html"><font color="#ffffff">gdata</font></a>.<a href="gdata.photos.html"><font color="#ffffff">photos</font></a>.service</strong></big></big> (version 176)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/photos/service.py">/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/photos/service.py</a></font></td></tr></table>
<p><tt>Google PhotoService provides a human-friendly interface to<br>
Google Photo (a.k.a Picasa Web) services[1].<br>
<br>
It extends gdata.service.<a href="gdata.service.html#GDataService">GDataService</a> and as such hides all the<br>
nasty details about authenticating, parsing and communicating with<br>
Google Photos. <br>
<br>
[1]: <a href="http://code.google.com/apis/picasaweb/gdata.html">http://code.google.com/apis/picasaweb/gdata.html</a><br>
<br>
Example:<br>
import gdata.photos, gdata.photos.service<br>
pws = gdata.photos.service.<a href="#PhotosService">PhotosService</a>()<br>
pws.ClientLogin(username, password)<br>
#Get all albums<br>
albums = pws.GetUserFeed().entry<br>
# Get all photos in second album<br>
photos = pws.GetFeed(albums[1].GetPhotosUri()).entry<br>
# Get all tags for photos in second album and print them<br>
tags = pws.GetFeed(albums[1].GetTagsUri()).entry<br>
print [ tag.summary.text for tag in tags ]<br>
# Get all comments for the first photos in list and print them<br>
comments = pws.GetCommentFeed(photos[0].GetCommentsUri()).entry<br>
print [ c.summary.text for c in comments ]<br>
<br>
# Get a photo to work with<br>
photo = photos[0]<br>
# Update metadata<br>
<br>
# Attributes from the <gphoto:*> namespace<br>
photo.summary.text = u'A nice view from my veranda'<br>
photo.title.text = u'Verandaview.jpg'<br>
<br>
# Attributes from the <media:*> namespace<br>
photo.media.keywords.text = u'Home, Long-exposure, Sunset' # Comma-separated<br>
<br>
# Adding attributes to media object<br>
<br>
# Rotate 90 degrees clockwise<br>
photo.rotation = gdata.photos.Rotation(text='90') <br>
<br>
# Submit modified photo object<br>
photo = pws.UpdatePhotoMetadata(photo)<br>
<br>
# Make sure you only modify the newly returned object, else you'll get<br>
# versioning errors. See Optimistic-concurrency<br>
<br>
# Add comment to a picture<br>
comment = pws.InsertComment(photo, u'I wish the water always was this warm')<br>
<br>
# Remove comment because it was silly<br>
print "*blush*"<br>
pws.Delete(comment.GetEditLink().href)</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="StringIO.html">StringIO</a><br>
<a href="atom.html">atom</a><br>
</td><td width="25%" valign=top><a href="gdata.html">gdata</a><br>
<a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
<a href="time.html">time</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="gdata.photos.service.html#GooglePhotosException">GooglePhotosException</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="gdata.service.html#GDataService">gdata.service.GDataService</a>(<a href="atom.service.html#AtomService">atom.service.AtomService</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="gdata.photos.service.html#PhotosService">PhotosService</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="GooglePhotosException">class <strong>GooglePhotosException</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="gdata.photos.service.html#GooglePhotosException">GooglePhotosException</a></dd>
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="GooglePhotosException-__init__"><strong>__init__</strong></a>(self, response)</dt></dl>
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list of weak references to the object (if defined)</tt></dd>
</dl>
<hr>
Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#GooglePhotosException-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><a name="GooglePhotosException-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
<br>
Use of negative indices is not supported.</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
<dl><dt><a name="GooglePhotosException-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
<dl><dt><a name="GooglePhotosException-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#GooglePhotosException-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
<dl><dt><a name="GooglePhotosException-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
<hr>
Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
</dl>
<dl><dt><strong>args</strong></dt>
</dl>
<dl><dt><strong>message</strong></dt>
</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="PhotosService">class <strong>PhotosService</strong></a>(<a href="gdata.service.html#GDataService">gdata.service.GDataService</a>)</font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="gdata.photos.service.html#PhotosService">PhotosService</a></dd>
<dd><a href="gdata.service.html#GDataService">gdata.service.GDataService</a></dd>
<dd><a href="atom.service.html#AtomService">atom.service.AtomService</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="PhotosService-Delete"><strong>Delete</strong></a>(self, object_or_uri, *args, **kwargs)</dt><dd><tt>Delete an object.<br>
<br>
Re-implementing the <a href="gdata.service.html#GDataService">GDataService</a>.Delete method, to add some<br>
convenience.<br>
<br>
Arguments:<br>
object_or_uri: Any object that has a GetEditLink() method that<br>
returns a link, or a uri to that object.<br>
<br>
Returns:<br>
? or <a href="#GooglePhotosException">GooglePhotosException</a> on errors</tt></dd></dl>
<dl><dt><a name="PhotosService-GetContacts"><strong>GetContacts</strong></a>(self, user<font color="#909090">='default'</font>, limit<font color="#909090">=None</font>)</dt><dd><tt>Retrieve a feed that contains a list of your contacts<br>
<br>
Arguments:<br>
user: Username of the user whose contacts you want<br>
<br>
Returns<br>
gdata.photos.UserFeed, with UserEntry entries<br>
<br>
See:<br>
<a href="http://groups.google.com/group/Google-Picasa-Data-API/msg/819b0025b5ff5e38">http://groups.google.com/group/Google-Picasa-Data-API/msg/819b0025b5ff5e38</a></tt></dd></dl>
<dl><dt><a name="PhotosService-GetEntry"><strong>GetEntry</strong></a>(self, uri, limit<font color="#909090">=None</font>, start_index<font color="#909090">=None</font>)</dt><dd><tt>Get an Entry.<br>
<br>
Arguments:<br>
uri: the uri to the entry<br>
limit (optional): the maximum number of entries to return. Defaults to what<br>
the server returns.<br>
<br>
Returns:<br>
one of gdata.photos.AlbumEntry,<br>
gdata.photos.UserEntry,<br>
gdata.photos.PhotoEntry,<br>
gdata.photos.CommentEntry,<br>
gdata.photos.TagEntry,<br>
depending on the results of the query.<br>
Raises:<br>
<a href="#GooglePhotosException">GooglePhotosException</a></tt></dd></dl>
<dl><dt><a name="PhotosService-GetFeed"><strong>GetFeed</strong></a>(self, uri, limit<font color="#909090">=None</font>, start_index<font color="#909090">=None</font>)</dt><dd><tt>Get a feed.<br>
<br>
The results are ordered by the values of their `updated' elements,<br>
with the most recently updated entry appearing first in the feed.<br>
<br>
Arguments:<br>
uri: the uri to fetch<br>
limit (optional): the maximum number of entries to return. Defaults to what<br>
the server returns.<br>
<br>
Returns:<br>
one of gdata.photos.AlbumFeed,<br>
gdata.photos.UserFeed,<br>
gdata.photos.PhotoFeed,<br>
gdata.photos.CommentFeed,<br>
gdata.photos.TagFeed,<br>
depending on the results of the query.<br>
Raises:<br>
<a href="#GooglePhotosException">GooglePhotosException</a><br>
<br>
See:<br>
<a href="http://code.google.com/apis/picasaweb/gdata.html#Get_Album_Feed_Manual">http://code.google.com/apis/picasaweb/gdata.html#Get_Album_Feed_Manual</a></tt></dd></dl>
<dl><dt><a name="PhotosService-GetTaggedPhotos"><strong>GetTaggedPhotos</strong></a>(self, tag, user<font color="#909090">='default'</font>, limit<font color="#909090">=None</font>)</dt><dd><tt>Get all photos belonging to a specific user, tagged by the given keyword<br>
<br>
Arguments:<br>
tag: The tag you're looking for, e.g. `dog'<br>
user (optional): Whose images/videos you want to search, defaults<br>
to current user<br>
limit (optional): the maximum number of entries to return.<br>
Defaults to everything the server returns.<br>
<br>
Returns:<br>
gdata.photos.UserFeed containing PhotoEntry elements</tt></dd></dl>
<dl><dt><a name="PhotosService-GetUserFeed"><strong>GetUserFeed</strong></a>(self, kind<font color="#909090">='album'</font>, user<font color="#909090">='default'</font>, limit<font color="#909090">=None</font>)</dt><dd><tt>Get user-based feed, containing albums, photos, comments or tags;<br>
defaults to albums.<br>
<br>
The entries are ordered by the values of their `updated' elements,<br>
with the most recently updated entry appearing first in the feed.<br>
<br>
Arguments:<br>
kind: the kind of entries to get, either `album', `photo',<br>
`comment' or `tag', or a python list of these. Defaults to `album'.<br>
user (optional): whose albums we're querying. Defaults to current user.<br>
limit (optional): the maximum number of entries to return.<br>
Defaults to everything the server returns.<br>
<br>
<br>
Returns:<br>
gdata.photos.UserFeed, containing appropriate Entry elements<br>
<br>
See:<br>
<a href="http://code.google.com/apis/picasaweb/gdata.html#Get_Album_Feed_Manual">http://code.google.com/apis/picasaweb/gdata.html#Get_Album_Feed_Manual</a><br>
<a href="http://googledataapis.blogspot.com/2007/07/picasa-web-albums-adds-new-api-features.html">http://googledataapis.blogspot.com/2007/07/picasa-web-albums-adds-new-api-features.html</a></tt></dd></dl>
<dl><dt><a name="PhotosService-InsertAlbum"><strong>InsertAlbum</strong></a>(self, title, summary, location<font color="#909090">=None</font>, access<font color="#909090">='public'</font>, commenting_enabled<font color="#909090">='true'</font>, timestamp<font color="#909090">=None</font>)</dt><dd><tt>Add an album.<br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
Arguments:<br>
title: Album title <br>
summary: Album summary / description<br>
access (optional): `private' or `public'. Public albums are searchable<br>
by everyone on the internet. Defaults to `public'<br>
commenting_enabled (optional): `true' or `false'. Defaults to `true'.<br>
timestamp (optional): A date and time for the album, in milliseconds since<br>
Unix epoch[1] UTC. Defaults to now.<br>
<br>
Returns:<br>
The newly created gdata.photos.AlbumEntry<br>
<br>
See:<br>
<a href="http://code.google.com/apis/picasaweb/gdata.html#Add_Album_Manual_Installed">http://code.google.com/apis/picasaweb/gdata.html#Add_Album_Manual_Installed</a><br>
<br>
[1]: <a href="http://en.wikipedia.org/wiki/Unix_epoch">http://en.wikipedia.org/wiki/Unix_epoch</a></tt></dd></dl>
<dl><dt><a name="PhotosService-InsertComment"><strong>InsertComment</strong></a>(self, photo_or_uri, comment)</dt><dd><tt>Add a comment to a photo.<br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
Arguments:<br>
photo_or_uri: a gdata.photos.PhotoEntry that is about to be commented<br>
, or a `post' uri pointing to it<br>
(string) comment: The actual comment<br>
<br>
Returns:<br>
The new gdata.photos.CommentEntry<br>
<br>
Example:<br>
p = <a href="#PhotosService-GetFeed">GetFeed</a>(PhotoUri)<br>
tag = <a href="#PhotosService-InsertComment">InsertComment</a>(p, 'OOOH! I would have loved to be there.<br>
Who's that in the back?')</tt></dd></dl>
<dl><dt><a name="PhotosService-InsertPhoto"><strong>InsertPhoto</strong></a>(self, album_or_uri, photo, filename_or_handle, content_type<font color="#909090">='image/jpeg'</font>)</dt><dd><tt>Add a PhotoEntry<br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
Arguments:<br>
album_or_uri: AlbumFeed or uri of the album where the photo should go<br>
photo: PhotoEntry to add<br>
filename_or_handle: A file-like object or file name where the image/video<br>
will be read from<br>
content_type (optional): Internet media type (a.k.a. mime type) of<br>
media object. Currently Google Photos supports these types:<br>
o image/bmp<br>
o image/gif<br>
o image/jpeg<br>
o image/png<br>
<br>
Images will be converted to jpeg on upload. Defaults to `image/jpeg'</tt></dd></dl>
<dl><dt><a name="PhotosService-InsertPhotoSimple"><strong>InsertPhotoSimple</strong></a>(self, album_or_uri, title, summary, filename_or_handle, content_type<font color="#909090">='image/jpeg'</font>, keywords<font color="#909090">=None</font>)</dt><dd><tt>Add a photo without constructing a PhotoEntry.<br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
Arguments:<br>
album_or_uri: AlbumFeed or uri of the album where the photo should go<br>
title: Photo title<br>
summary: Photo summary / description<br>
filename_or_handle: A file-like object or file name where the image/video<br>
will be read from<br>
content_type (optional): Internet media type (a.k.a. mime type) of<br>
media object. Currently Google Photos supports these types:<br>
o image/bmp<br>
o image/gif<br>
o image/jpeg<br>
o image/png<br>
<br>
Images will be converted to jpeg on upload. Defaults to `image/jpeg'<br>
keywords (optional): a 1) comma separated string or 2) a python list() of<br>
keywords (a.k.a. tags) to add to the image.<br>
E.g. 1) `dog, vacation, happy' 2) ['dog', 'happy', 'vacation']<br>
<br>
Returns:<br>
The newly created gdata.photos.PhotoEntry or <a href="#GooglePhotosException">GooglePhotosException</a> on errors<br>
<br>
See:<br>
<a href="http://code.google.com/apis/picasaweb/gdata.html#Add_Album_Manual_Installed">http://code.google.com/apis/picasaweb/gdata.html#Add_Album_Manual_Installed</a><br>
[1]: <a href="http://en.wikipedia.org/wiki/Unix_epoch">http://en.wikipedia.org/wiki/Unix_epoch</a></tt></dd></dl>
<dl><dt><a name="PhotosService-InsertTag"><strong>InsertTag</strong></a>(self, photo_or_uri, tag)</dt><dd><tt>Add a tag (a.k.a. keyword) to a photo.<br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
Arguments:<br>
photo_or_uri: a gdata.photos.PhotoEntry that will be tagged, or a<br>
`post' uri pointing to it<br>
(string) tag: The tag/keyword<br>
<br>
Returns:<br>
The new gdata.photos.TagEntry<br>
<br>
Example:<br>
p = <a href="#PhotosService-GetFeed">GetFeed</a>(PhotoUri)<br>
tag = <a href="#PhotosService-InsertTag">InsertTag</a>(p, 'Beautiful sunsets')</tt></dd></dl>
<dl><dt><a name="PhotosService-SearchCommunityPhotos"><strong>SearchCommunityPhotos</strong></a>(self, query, limit<font color="#909090">=100</font>)</dt><dd><tt>Search through all public photos and return a feed.<br>
This will look for matches in file names and image tags (a.k.a. keywords)<br>
<br>
Arguments:<br>
query: The string you're looking for, e.g. `vacation'<br>
limit (optional): Don't return more than `limit' hits, defaults to 100<br>
<br>
Returns:<br>
gdata.GDataFeed with PhotoEntry elements</tt></dd></dl>
<dl><dt><a name="PhotosService-SearchContactsPhotos"><strong>SearchContactsPhotos</strong></a>(self, user<font color="#909090">='default'</font>, search<font color="#909090">=None</font>, limit<font color="#909090">=None</font>)</dt><dd><tt>Search over your contacts' photos and return a feed<br>
<br>
Arguments:<br>
user: Username of the user whose contacts you want<br>
search (optional): What to search for (photo title, description and keywords)<br>
<br>
Returns<br>
gdata.photos.UserFeed, with PhotoEntry elements<br>
<br>
See:<br>
<a href="http://groups.google.com/group/Google-Picasa-Data-API/msg/819b0025b5ff5e38">http://groups.google.com/group/Google-Picasa-Data-API/msg/819b0025b5ff5e38</a></tt></dd></dl>
<dl><dt><a name="PhotosService-SearchUserPhotos"><strong>SearchUserPhotos</strong></a>(self, query, user<font color="#909090">='default'</font>, limit<font color="#909090">=100</font>)</dt><dd><tt>Search through all photos for a specific user and return a feed.<br>
This will look for matches in file names and image tags (a.k.a. keywords)<br>
<br>
Arguments:<br>
query: The string you're looking for, e.g. `vacation'<br>
user (optional): The username of whose photos you want to search, defaults<br>
to current user.<br>
limit (optional): Don't return more than `limit' hits, defaults to 100<br>
<br>
Only public photos are searched, unless you are authenticated and<br>
searching through your own photos.<br>
<br>
Returns:<br>
gdata.photos.UserFeed with PhotoEntry elements</tt></dd></dl>
<dl><dt><a name="PhotosService-UpdatePhotoBlob"><strong>UpdatePhotoBlob</strong></a>(self, photo_or_uri, filename_or_handle, content_type<font color="#909090">='image/jpeg'</font>)</dt><dd><tt>Update a photo's binary data.<br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
Arguments:<br>
photo_or_uri: a gdata.photos.PhotoEntry that will be updated, or a<br>
`edit-media' uri pointing to it<br>
filename_or_handle: A file-like object or file name where the image/video<br>
will be read from<br>
content_type (optional): Internet media type (a.k.a. mime type) of<br>
media object. Currently Google Photos supports these types:<br>
o image/bmp<br>
o image/gif<br>
o image/jpeg<br>
o image/png<br>
Images will be converted to jpeg on upload. Defaults to `image/jpeg'<br>
<br>
Returns:<br>
The modified gdata.photos.PhotoEntry<br>
<br>
Example:<br>
p = <a href="#PhotosService-GetFeed">GetFeed</a>(PhotoUri)<br>
p = <a href="#PhotosService-UpdatePhotoBlob">UpdatePhotoBlob</a>(p, '/tmp/newPic.jpg')<br>
<br>
It is important that you don't keep the old object around, once<br>
it has been updated. See<br>
<a href="http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency">http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency</a></tt></dd></dl>
<dl><dt><a name="PhotosService-UpdatePhotoMetadata"><strong>UpdatePhotoMetadata</strong></a>(self, photo)</dt><dd><tt>Update a photo's metadata. <br>
<br>
Needs authentication, see <a href="#PhotosService-ClientLogin">ClientLogin</a>()<br>
<br>
You can update any or all of the following metadata properties:<br>
* <title><br>
* <media:description><br>
* <gphoto:checksum><br>
* <gphoto:client><br>
* <gphoto:rotation><br>
* <gphoto:timestamp><br>
* <gphoto:commentingEnabled><br>
<br>
Arguments:<br>
photo: a gdata.photos.PhotoEntry object with updated elements<br>
<br>
Returns:<br>
The modified gdata.photos.PhotoEntry<br>
<br>
Example:<br>
p = <a href="#PhotosService-GetFeed">GetFeed</a>(uri).entry[0]<br>
p.title.text = u'My new text'<br>
p.commentingEnabled.text = 'false'<br>
p = <a href="#PhotosService-UpdatePhotoMetadata">UpdatePhotoMetadata</a>(p)<br>
<br>
It is important that you don't keep the old object around, once<br>
it has been updated. See<br>
<a href="http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency">http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency</a></tt></dd></dl>
<dl><dt><a name="PhotosService-__init__"><strong>__init__</strong></a>(self, email<font color="#909090">=None</font>, password<font color="#909090">=None</font>, source<font color="#909090">=None</font>, server<font color="#909090">='picasaweb.google.com'</font>, additional_headers<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Creates a client for the Google Photos service.<br>
<br>
Args:<br>
email: string (optional) The user's email address, used for<br>
authentication.<br>
password: string (optional) The user's password.<br>
source: string (optional) The name of the user's application.<br>
server: string (optional) The name of the server to which a connection<br>
will be opened. Default value: 'picasaweb.google.com'.<br>
**kwargs: The other parameters to pass to gdata.service.<a href="gdata.service.html#GDataService">GDataService</a><br>
constructor.</tt></dd></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>ssl</strong> = True</dl>
<dl><dt><strong>userUri</strong> = '/data/feed/api/user/%s'</dl>
<hr>
Methods inherited from <a href="gdata.service.html#GDataService">gdata.service.GDataService</a>:<br>
<dl><dt><a name="PhotosService-AuthSubTokenInfo"><strong>AuthSubTokenInfo</strong></a>(self)</dt><dd><tt>Fetches the AuthSub token's metadata from the server.<br>
<br>
Raises:<br>
NonAuthSubToken if the user's auth token is not an AuthSub token</tt></dd></dl>
<dl><dt><a name="PhotosService-ClientLogin"><strong>ClientLogin</strong></a>(self, username, password, account_type<font color="#909090">=None</font>, service<font color="#909090">=None</font>, auth_service_url<font color="#909090">=None</font>, source<font color="#909090">=None</font>, captcha_token<font color="#909090">=None</font>, captcha_response<font color="#909090">=None</font>)</dt><dd><tt>Convenience method for authenticating using ProgrammaticLogin. <br>
<br>
Sets values for email, password, and other optional members.<br>
<br>
Args:<br>
username:<br>
password:<br>
account_type: string (optional)<br>
service: string (optional)<br>
auth_service_url: string (optional)<br>
captcha_token: string (optional)<br>
captcha_response: string (optional)</tt></dd></dl>
<dl><dt><a name="PhotosService-FetchOAuthRequestToken"><strong>FetchOAuthRequestToken</strong></a>(self, scopes<font color="#909090">=None</font>, extra_parameters<font color="#909090">=None</font>, request_url<font color="#909090">='https://www.google.com/accounts/OAuthGetRequestToken'</font>, oauth_callback<font color="#909090">=None</font>)</dt><dd><tt>Fetches and sets the OAuth request token and returns it.<br>
<br>
Args:<br>
scopes: string or list of string base URL(s) of the service(s) to be<br>
accessed. If None, then this method tries to determine the<br>
scope(s) from the current service.<br>
extra_parameters: dict (optional) key-value pairs as any additional<br>
parameters to be included in the URL and signature while making a<br>
request for fetching an OAuth request token. All the OAuth parameters<br>
are added by default. But if provided through this argument, any<br>
default parameters will be overwritten. For e.g. a default parameter<br>
oauth_version 1.0 can be overwritten if<br>
extra_parameters = {'oauth_version': '2.0'}<br>
request_url: Request token URL. The default is<br>
'https://www.google.com/accounts/OAuthGetRequestToken'.<br>
oauth_callback: str (optional) If set, it is assume the client is using<br>
the OAuth v1.0a protocol where the callback url is sent in the<br>
request token step. If the oauth_callback is also set in<br>
extra_params, this value will override that one.<br>
<br>
Returns:<br>
The fetched request token as a gdata.auth.OAuthToken object.<br>
<br>
Raises:<br>
FetchingOAuthRequestTokenFailed if the server responded to the request<br>
with an error.</tt></dd></dl>
<dl><dt><a name="PhotosService-GenerateAuthSubURL"><strong>GenerateAuthSubURL</strong></a>(self, next, scope, secure<font color="#909090">=False</font>, session<font color="#909090">=True</font>, domain<font color="#909090">='default'</font>)</dt><dd><tt>Generate a URL at which the user will login and be redirected back.<br>
<br>
Users enter their credentials on a Google login page and a token is sent<br>
to the URL specified in next. See documentation for AuthSub login at:<br>
<a href="http://code.google.com/apis/accounts/docs/AuthSub.html">http://code.google.com/apis/accounts/docs/AuthSub.html</a><br>
<br>
Args:<br>
next: string The URL user will be sent to after logging in.<br>
scope: string or list of strings. The URLs of the services to be <br>
accessed.<br>
secure: boolean (optional) Determines whether or not the issued token<br>
is a secure token.<br>
session: boolean (optional) Determines whether or not the issued token<br>
can be upgraded to a session token.</tt></dd></dl>
<dl><dt><a name="PhotosService-GenerateOAuthAuthorizationURL"><strong>GenerateOAuthAuthorizationURL</strong></a>(self, request_token<font color="#909090">=None</font>, callback_url<font color="#909090">=None</font>, extra_params<font color="#909090">=None</font>, include_scopes_in_callback<font color="#909090">=False</font>, scopes_param_prefix<font color="#909090">='oauth_token_scope'</font>, request_url<font color="#909090">='https://www.google.com/accounts/OAuthAuthorizeToken'</font>)</dt><dd><tt>Generates URL at which user will login to authorize the request token.<br>
<br>
Args:<br>
request_token: gdata.auth.OAuthToken (optional) OAuth request token.<br>
If not specified, then the current token will be used if it is of<br>
type <gdata.auth.OAuthToken>, else it is found by looking in the<br>
token_store by looking for a token for the current scope. <br>
callback_url: string (optional) The URL user will be sent to after<br>
logging in and granting access.<br>
extra_params: dict (optional) Additional parameters to be sent.<br>
include_scopes_in_callback: Boolean (default=False) if set to True, and<br>
if 'callback_url' is present, the 'callback_url' will be modified to<br>
include the scope(s) from the request token as a URL parameter. The<br>
key for the 'callback' URL's scope parameter will be<br>
OAUTH_SCOPE_URL_PARAM_NAME. The benefit of including the scope URL as<br>
a parameter to the 'callback' URL, is that the page which receives<br>
the OAuth token will be able to tell which URLs the token grants<br>
access to.<br>
scopes_param_prefix: string (default='oauth_token_scope') The URL<br>
parameter key which maps to the list of valid scopes for the token.<br>
This URL parameter will be included in the callback URL along with<br>
the scopes of the token as value if include_scopes_in_callback=True.<br>
request_url: Authorization URL. The default is<br>
'https://www.google.com/accounts/OAuthAuthorizeToken'.<br>
Returns:<br>
A string URL at which the user is required to login.<br>
<br>
Raises:<br>
NonOAuthToken if the user's request token is not an OAuth token or if a<br>
request token was not available.</tt></dd></dl>
<dl><dt><a name="PhotosService-Get"><strong>Get</strong></a>(self, uri, extra_headers<font color="#909090">=None</font>, redirects_remaining<font color="#909090">=4</font>, encoding<font color="#909090">='UTF-8'</font>, converter<font color="#909090">=None</font>)</dt><dd><tt>Query the GData API with the given URI<br>
<br>
The uri is the portion of the URI after the server value <br>
(ex: www.google.com).<br>
<br>
To perform a query against Google Base, set the server to <br>
'base.google.com' and set the uri to '/base/feeds/...', where ... is <br>
your query. For example, to find snippets for all digital cameras uri <br>
should be set to: '/base/feeds/snippets?bq=digital+camera'<br>
<br>
Args:<br>
uri: string The query in the form of a URI. Example:<br>
'/base/feeds/snippets?bq=digital+camera'.<br>
extra_headers: dictionary (optional) Extra HTTP headers to be included<br>
in the GET request. These headers are in addition to <br>
those stored in the client's additional_headers property.<br>
The client automatically sets the Content-Type and <br>
Authorization headers.<br>
redirects_remaining: int (optional) Tracks the number of additional<br>
redirects this method will allow. If the service object receives<br>
a redirect and remaining is 0, it will not follow the redirect. <br>
This was added to avoid infinite redirect loops.<br>
encoding: string (optional) The character encoding for the server's<br>
response. Default is UTF-8<br>
converter: func (optional) A function which will transform<br>
the server's results before it is returned. Example: use <br>
GDataFeedFromString to parse the server response as if it<br>
were a GDataFeed.<br>
<br>
Returns:<br>
If there is no ResultsTransformer specified in the call, a GDataFeed <br>
or GDataEntry depending on which is sent from the server. If the <br>
response is niether a feed or entry and there is no ResultsTransformer,<br>
return a string. If there is a ResultsTransformer, the returned value <br>
will be that of the ResultsTransformer function.</tt></dd></dl>
<dl><dt><a name="PhotosService-GetAuthSubToken"><strong>GetAuthSubToken</strong></a>(self)</dt><dd><tt>Returns the AuthSub token as a string.<br>
<br>
If the token is an gdta.auth.AuthSubToken, the Authorization Label<br>
("AuthSub token") is removed.<br>
<br>
This method examines the current_token to see if it is an AuthSubToken<br>
or SecureAuthSubToken. If not, it searches the token_store for a token<br>
which matches the current scope.<br>
<br>
The current scope is determined by the service name string member.<br>
<br>
Returns:<br>
If the current_token is set to an AuthSubToken/SecureAuthSubToken,<br>
return the token string. If there is no current_token, a token string<br>
for a token which matches the service object's default scope is returned.<br>
If there are no tokens valid for the scope, returns None.</tt></dd></dl>
<dl><dt><a name="PhotosService-GetClientLoginToken"><strong>GetClientLoginToken</strong></a>(self)</dt><dd><tt>Returns the token string for the current token or a token matching the <br>
service scope.<br>
<br>
If the current_token is a ClientLoginToken, the token string for <br>
the current token is returned. If the current_token is not set, this method<br>
searches for a token in the token_store which is valid for the service <br>
object's current scope.<br>
<br>
The current scope is determined by the service name string member.<br>
The token string is the end of the Authorization header, it doesn not<br>
include the ClientLogin label.</tt></dd></dl>
<dl><dt><a name="PhotosService-GetGeneratorFromLinkFinder"><strong>GetGeneratorFromLinkFinder</strong></a>(self, link_finder, func, num_retries<font color="#909090">=3</font>, delay<font color="#909090">=1</font>, backoff<font color="#909090">=2</font>)</dt><dd><tt>returns a generator for pagination</tt></dd></dl>
<dl><dt><a name="PhotosService-GetMedia"><strong>GetMedia</strong></a>(self, uri, extra_headers<font color="#909090">=None</font>)</dt><dd><tt>Returns a MediaSource containing media and its metadata from the given<br>
URI string.</tt></dd></dl>
<dl><dt><a name="PhotosService-GetNext"><strong>GetNext</strong></a>(self, feed)</dt><dd><tt>Requests the next 'page' of results in the feed.<br>
<br>
This method uses the feed's next link to request an additional feed<br>
and uses the class of the feed to convert the results of the GET request.<br>
<br>
Args:<br>
feed: atom.Feed or a subclass. The feed should contain a next link and<br>
the type of the feed will be applied to the results from the <br>
server. The new feed which is returned will be of the same class<br>
as this feed which was passed in.<br>
<br>
Returns:<br>
A new feed representing the next set of results in the server's feed.<br>
The type of this feed will match that of the feed argument.</tt></dd></dl>
<dl><dt><a name="PhotosService-GetOAuthInputParameters"><strong>GetOAuthInputParameters</strong></a>(self)</dt></dl>
<dl><dt><a name="PhotosService-GetWithRetries"><strong>GetWithRetries</strong></a>(self, uri, extra_headers<font color="#909090">=None</font>, redirects_remaining<font color="#909090">=4</font>, encoding<font color="#909090">='UTF-8'</font>, converter<font color="#909090">=None</font>, num_retries<font color="#909090">=3</font>, delay<font color="#909090">=1</font>, backoff<font color="#909090">=2</font>, logger<font color="#909090">=None</font>)</dt><dd><tt>This is a wrapper method for Get with retrying capability.<br>
<br>
To avoid various errors while retrieving bulk entities by retrying<br>
specified times.<br>
<br>
Note this method relies on the time module and so may not be usable<br>
by default in Python2.2.<br>
<br>
Args:<br>
num_retries: Integer; the retry count.<br>
delay: Integer; the initial delay for retrying.<br>
backoff: Integer; how much the delay should lengthen after each failure.<br>
logger: An object which has a <a href="#PhotosService-debug">debug</a>(str) method to receive logging<br>
messages. Recommended that you pass in the logging module.<br>
Raises:<br>
ValueError if any of the parameters has an invalid value.<br>
RanOutOfTries on failure after number of retries.</tt></dd></dl>
<dl><dt><a name="PhotosService-Post"><strong>Post</strong></a>(self, data, uri, extra_headers<font color="#909090">=None</font>, url_params<font color="#909090">=None</font>, escape_params<font color="#909090">=True</font>, redirects_remaining<font color="#909090">=4</font>, media_source<font color="#909090">=None</font>, converter<font color="#909090">=None</font>)</dt><dd><tt>Insert or update data into a GData service at the given URI.<br>
<br>
Args:<br>
data: string, ElementTree._Element, atom.Entry, or gdata.GDataEntry The<br>
XML to be sent to the uri.<br>
uri: string The location (feed) to which the data should be inserted.<br>
Example: '/base/feeds/items'.<br>
extra_headers: dict (optional) HTTP headers which are to be included.<br>
The client automatically sets the Content-Type,<br>
Authorization, and Content-Length headers.<br>
url_params: dict (optional) Additional URL parameters to be included<br>
in the URI. These are translated into query arguments<br>
in the form '&dict_key=value&...'.<br>
Example: {'max-results': '250'} becomes &max-results=250<br>
escape_params: boolean (optional) If false, the calling code has already<br>
ensured that the query will form a valid URL (all<br>
reserved characters have been escaped). If true, this<br>
method will escape the query and any URL parameters<br>
provided.<br>
media_source: MediaSource (optional) Container for the media to be sent<br>
along with the entry, if provided.<br>
converter: func (optional) A function which will be executed on the<br>
server's response. Often this is a function like<br>
GDataEntryFromString which will parse the body of the server's<br>
response and return a GDataEntry.<br>
<br>
Returns:<br>
If the post succeeded, this method will return a GDataFeed, GDataEntry,<br>
or the results of running converter on the server's result body (if<br>
converter was specified).</tt></dd></dl>
<dl><dt><a name="PhotosService-PostOrPut"><strong>PostOrPut</strong></a>(self, verb, data, uri, extra_headers<font color="#909090">=None</font>, url_params<font color="#909090">=None</font>, escape_params<font color="#909090">=True</font>, redirects_remaining<font color="#909090">=4</font>, media_source<font color="#909090">=None</font>, converter<font color="#909090">=None</font>)</dt><dd><tt>Insert data into a GData service at the given URI.<br>
<br>
Args:<br>
verb: string, either 'POST' or 'PUT'<br>
data: string, ElementTree._Element, atom.Entry, or gdata.GDataEntry The<br>
XML to be sent to the uri. <br>
uri: string The location (feed) to which the data should be inserted. <br>
Example: '/base/feeds/items'. <br>
extra_headers: dict (optional) HTTP headers which are to be included. <br>
The client automatically sets the Content-Type,<br>
Authorization, and Content-Length headers.<br>
url_params: dict (optional) Additional URL parameters to be included<br>
in the URI. These are translated into query arguments<br>
in the form '&dict_key=value&...'.<br>
Example: {'max-results': '250'} becomes &max-results=250<br>
escape_params: boolean (optional) If false, the calling code has already<br>
ensured that the query will form a valid URL (all<br>
reserved characters have been escaped). If true, this<br>
method will escape the query and any URL parameters<br>
provided.<br>
media_source: MediaSource (optional) Container for the media to be sent<br>
along with the entry, if provided.<br>
converter: func (optional) A function which will be executed on the <br>
server's response. Often this is a function like <br>
GDataEntryFromString which will parse the body of the server's <br>
response and return a GDataEntry.<br>
<br>
Returns:<br>
If the post succeeded, this method will return a GDataFeed, GDataEntry,<br>
or the results of running converter on the server's result body (if<br>
converter was specified).</tt></dd></dl>
<dl><dt><a name="PhotosService-ProgrammaticLogin"><strong>ProgrammaticLogin</strong></a>(self, captcha_token<font color="#909090">=None</font>, captcha_response<font color="#909090">=None</font>)</dt><dd><tt>Authenticates the user and sets the GData Auth token.<br>
<br>
Login retreives a temporary auth token which must be used with all<br>
requests to GData services. The auth token is stored in the GData client<br>
object.<br>
<br>
Login is also used to respond to a captcha challenge. If the user's login<br>
attempt failed with a CaptchaRequired error, the user can respond by<br>
calling Login with the captcha token and the answer to the challenge.<br>
<br>
Args:<br>
captcha_token: string (optional) The identifier for the captcha challenge<br>
which was presented to the user.<br>
captcha_response: string (optional) The user's answer to the captch <br>
challenge.<br>
<br>
Raises:<br>
CaptchaRequired if the login service will require a captcha response<br>
BadAuthentication if the login service rejected the username or password<br>
Error if the login service responded with a 403 different from the above</tt></dd></dl>
<dl><dt><a name="PhotosService-Put"><strong>Put</strong></a>(self, data, uri, extra_headers<font color="#909090">=None</font>, url_params<font color="#909090">=None</font>, escape_params<font color="#909090">=True</font>, redirects_remaining<font color="#909090">=3</font>, media_source<font color="#909090">=None</font>, converter<font color="#909090">=None</font>)</dt><dd><tt>Updates an entry at the given URI.<br>
<br>
Args:<br>
data: string, ElementTree._Element, or xml_wrapper.ElementWrapper The <br>
XML containing the updated data.<br>
uri: string A URI indicating entry to which the update will be applied.<br>
Example: '/base/feeds/items/ITEM-ID'<br>
extra_headers: dict (optional) HTTP headers which are to be included.<br>
The client automatically sets the Content-Type,<br>
Authorization, and Content-Length headers.<br>
url_params: dict (optional) Additional URL parameters to be included<br>
in the URI. These are translated into query arguments<br>
in the form '&dict_key=value&...'.<br>
Example: {'max-results': '250'} becomes &max-results=250<br>
escape_params: boolean (optional) If false, the calling code has already<br>
ensured that the query will form a valid URL (all<br>
reserved characters have been escaped). If true, this<br>
method will escape the query and any URL parameters<br>
provided.<br>
converter: func (optional) A function which will be executed on the <br>
server's response. Often this is a function like <br>
GDataEntryFromString which will parse the body of the server's <br>
response and return a GDataEntry.<br>
<br>
Returns:<br>
If the put succeeded, this method will return a GDataFeed, GDataEntry,<br>
or the results of running converter on the server's result body (if<br>
converter was specified).</tt></dd></dl>
<dl><dt><a name="PhotosService-RevokeAuthSubToken"><strong>RevokeAuthSubToken</strong></a>(self)</dt><dd><tt>Revokes an existing AuthSub token.<br>
<br>
Raises:<br>
NonAuthSubToken if the user's auth token is not an AuthSub token</tt></dd></dl>
<dl><dt><a name="PhotosService-RevokeOAuthToken"><strong>RevokeOAuthToken</strong></a>(self, request_url<font color="#909090">='https://www.google.com/accounts/AuthSubRevokeToken'</font>)</dt><dd><tt>Revokes an existing OAuth token.<br>
<br>
request_url: Token revoke URL. The default is<br>
'https://www.google.com/accounts/AuthSubRevokeToken'.<br>
Raises:<br>
NonOAuthToken if the user's auth token is not an OAuth token.<br>
RevokingOAuthTokenFailed if request for revoking an OAuth token failed.</tt></dd></dl>
<dl><dt><a name="PhotosService-SetAuthSubToken"><strong>SetAuthSubToken</strong></a>(self, token, scopes<font color="#909090">=None</font>, rsa_key<font color="#909090">=None</font>)</dt><dd><tt>Sets the token sent in requests to an AuthSub token.<br>
<br>
Sets the current_token and attempts to add the token to the token_store.<br>
<br>
Only use this method if you have received a token from the AuthSub<br>
service. The auth token is set automatically when <a href="#PhotosService-UpgradeToSessionToken">UpgradeToSessionToken</a>()<br>
is used. See documentation for Google AuthSub here:<br>
<a href="http://code.google.com/apis/accounts/AuthForWebApps.html">http://code.google.com/apis/accounts/AuthForWebApps.html</a> <br>
<br>
Args:<br>
token: gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken or string<br>
The token returned by the AuthSub service. If the token is an<br>
AuthSubToken or SecureAuthSubToken, the scope information stored in<br>
the token is used. If the token is a string, the scopes parameter is<br>
used to determine the valid scopes.<br>
scopes: list of URLs for which the token is valid. This is only used<br>
if the token parameter is a string.<br>
rsa_key: string (optional) Private key required for RSA_SHA1 signature<br>
method. This parameter is necessary if the token is a string<br>
representing a secure token.</tt></dd></dl>
<dl><dt><a name="PhotosService-SetClientLoginToken"><strong>SetClientLoginToken</strong></a>(self, token, scopes<font color="#909090">=None</font>)</dt><dd><tt>Sets the token sent in requests to a ClientLogin token.<br>
<br>
This method sets the current_token to a new ClientLoginToken and it <br>
also attempts to add the ClientLoginToken to the token_store.<br>
<br>
Only use this method if you have received a token from the ClientLogin<br>
service. The auth_token is set automatically when <a href="#PhotosService-ProgrammaticLogin">ProgrammaticLogin</a>()<br>
is used. See documentation for Google ClientLogin here:<br>
<a href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html">http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html</a><br>
<br>
Args:<br>
token: string or instance of a ClientLoginToken.</tt></dd></dl>
<dl><dt><a name="PhotosService-SetOAuthInputParameters"><strong>SetOAuthInputParameters</strong></a>(self, signature_method, consumer_key, consumer_secret<font color="#909090">=None</font>, rsa_key<font color="#909090">=None</font>, two_legged_oauth<font color="#909090">=False</font>, requestor_id<font color="#909090">=None</font>)</dt><dd><tt>Sets parameters required for using OAuth authentication mechanism.<br>
<br>
NOTE: Though consumer_secret and rsa_key are optional, either of the two<br>
is required depending on the value of the signature_method.<br>
<br>
Args:<br>
signature_method: class which provides implementation for strategy class<br>
oauth.oauth.OAuthSignatureMethod. Signature method to be used for<br>
signing each request. Valid implementations are provided as the<br>
constants defined by gdata.auth.OAuthSignatureMethod. Currently<br>
they are gdata.auth.OAuthSignatureMethod.RSA_SHA1 and<br>
gdata.auth.OAuthSignatureMethod.HMAC_SHA1<br>
consumer_key: string Domain identifying third_party web application.<br>
consumer_secret: string (optional) Secret generated during registration.<br>
Required only for HMAC_SHA1 signature method.<br>
rsa_key: string (optional) Private key required for RSA_SHA1 signature<br>
method.<br>
two_legged_oauth: boolean (optional) Enables two-legged OAuth process.<br>
requestor_id: string (optional) User email adress to make requests on<br>
their behalf. This parameter should only be set when two_legged_oauth<br>
is True.</tt></dd></dl>
<dl><dt><a name="PhotosService-SetOAuthToken"><strong>SetOAuthToken</strong></a>(self, oauth_token)</dt><dd><tt>Attempts to set the current token and add it to the token store.<br>
<br>
The oauth_token can be any OAuth token i.e. unauthorized request token,<br>
authorized request token or access token.<br>
This method also attempts to add the token to the token store.<br>
Use this method any time you want the current token to point to the<br>
oauth_token passed. For e.g. call this method with the request token<br>
you receive from FetchOAuthRequestToken.<br>
<br>
Args:<br>
request_token: gdata.auth.OAuthToken OAuth request token.</tt></dd></dl>
<dl><dt><a name="PhotosService-UpgradeToOAuthAccessToken"><strong>UpgradeToOAuthAccessToken</strong></a>(self, authorized_request_token<font color="#909090">=None</font>, request_url<font color="#909090">='https://www.google.com/accounts/OAuthGetAccessToken'</font>, oauth_version<font color="#909090">='1.0'</font>, oauth_verifier<font color="#909090">=None</font>)</dt><dd><tt>Upgrades the authorized request token to an access token and returns it<br>
<br>
Args:<br>
authorized_request_token: gdata.auth.OAuthToken (optional) OAuth request<br>
token. If not specified, then the current token will be used if it is<br>
of type <gdata.auth.OAuthToken>, else it is found by looking in the<br>
token_store by looking for a token for the current scope.<br>
request_url: Access token URL. The default is<br>
'https://www.google.com/accounts/OAuthGetAccessToken'.<br>
oauth_version: str (default='1.0') oauth_version parameter. All other<br>
'oauth_' parameters are added by default. This parameter too, is<br>
added by default but here you can override it's value.<br>
oauth_verifier: str (optional) If present, it is assumed that the client<br>
will use the OAuth v1.0a protocol which includes passing the<br>
oauth_verifier (as returned by the SP) in the access token step.<br>
<br>
Returns:<br>
Access token<br>
<br>
Raises:<br>
NonOAuthToken if the user's authorized request token is not an OAuth<br>
token or if an authorized request token was not available.<br>
TokenUpgradeFailed if the server responded to the request with an <br>
error.</tt></dd></dl>
<dl><dt><a name="PhotosService-UpgradeToSessionToken"><strong>UpgradeToSessionToken</strong></a>(self, token<font color="#909090">=None</font>)</dt><dd><tt>Upgrades a single use AuthSub token to a session token.<br>
<br>
Args:<br>
token: A gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken<br>
(optional) which is good for a single use but can be upgraded<br>
to a session token. If no token is passed in, the token<br>
is found by looking in the token_store by looking for a token<br>
for the current scope.<br>
<br>
Raises:<br>
NonAuthSubToken if the user's auth token is not an AuthSub token<br>
TokenUpgradeFailed if the server responded to the request with an <br>
error.</tt></dd></dl>
<dl><dt><a name="PhotosService-upgrade_to_session_token"><strong>upgrade_to_session_token</strong></a>(self, token)</dt><dd><tt>Upgrades a single use AuthSub token to a session token.<br>
<br>
Args:<br>
token: A gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken<br>
which is good for a single use but can be upgraded to a<br>
session token.<br>
<br>
Returns:<br>
The upgraded token as a gdata.auth.AuthSubToken object.<br>
<br>
Raises:<br>
TokenUpgradeFailed if the server responded to the request with an <br>
error.</tt></dd></dl>
<hr>
Data descriptors inherited from <a href="gdata.service.html#GDataService">gdata.service.GDataService</a>:<br>
<dl><dt><strong>captcha_token</strong></dt>
<dd><tt>Get the captcha token for a login request.</tt></dd>
</dl>
<dl><dt><strong>captcha_url</strong></dt>
<dd><tt>Get the captcha URL for a login request.</tt></dd>
</dl>
<dl><dt><strong>source</strong></dt>
<dd><tt>The source is the name of the application making the request. <br>
It should be in the form company_id-app_name-app_version</tt></dd>
</dl>
<hr>
Data and other attributes inherited from <a href="gdata.service.html#GDataService">gdata.service.GDataService</a>:<br>
<dl><dt><strong>auth_token</strong> = None</dl>
<dl><dt><strong>handler</strong> = None</dl>
<dl><dt><strong>tokens</strong> = None</dl>
<hr>
Methods inherited from <a href="atom.service.html#AtomService">atom.service.AtomService</a>:<br>
<dl><dt><a name="PhotosService-UseBasicAuth"><strong>UseBasicAuth</strong></a>(self, username, password, for_proxy<font color="#909090">=False</font>)</dt><dd><tt>Sets an Authenticaiton: Basic HTTP header containing plaintext.<br>
<br>
Deprecated, use use_basic_auth instead.<br>
<br>
The username and password are base64 encoded and added to an HTTP header<br>
which will be included in each request. Note that your username and <br>
password are sent in plaintext.<br>
<br>
Args:<br>
username: str<br>
password: str</tt></dd></dl>
<dl><dt><a name="PhotosService-request"><strong>request</strong></a>(*args, **kwargs)</dt><dd><tt># The deprecated_function wraps the actual call to f.</tt></dd></dl>
<dl><dt><a name="PhotosService-use_basic_auth"><strong>use_basic_auth</strong></a>(self, username, password, scopes<font color="#909090">=None</font>)</dt></dl>
<hr>
Data descriptors inherited from <a href="atom.service.html#AtomService">atom.service.AtomService</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list of weak references to the object (if defined)</tt></dd>
</dl>
<dl><dt><strong>debug</strong></dt>
<dd><tt>If True, HTTP debug information is printed.</tt></dd>
</dl>
<dl><dt><strong>override_token</strong></dt>
</dl>
<hr>
Data and other attributes inherited from <a href="atom.service.html#AtomService">atom.service.AtomService</a>:<br>
<dl><dt><strong>auto_set_current_token</strong> = True</dl>
<dl><dt><strong>auto_store_tokens</strong> = True</dl>
<dl><dt><strong>current_token</strong> = None</dl>
<dl><dt><strong>port</strong> = 80</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt><a name="-ConvertAtomTimestampToEpoch"><strong>ConvertAtomTimestampToEpoch</strong></a>(timestamp)</dt><dd><tt>Helper function to convert a timestamp string, for instance<br>
from atom:updated or atom:published, to milliseconds since Unix epoch<br>
(a.k.a. POSIX time).<br>
<br>
`2007-07-22T00:45:10.000Z' -></tt></dd></dl>
<dl><dt><a name="-GetSmallestThumbnail"><strong>GetSmallestThumbnail</strong></a>(media_thumbnail_list)</dt><dd><tt>Helper function to get the smallest thumbnail of a list of<br>
gdata.media.Thumbnail.<br>
Returns gdata.media.Thumbnail</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
<td width="100%"><strong>GPHOTOS_BAD_REQUEST</strong> = 400<br>
<strong>GPHOTOS_CONFLICT</strong> = 409<br>
<strong>GPHOTOS_INTERNAL_SERVER_ERROR</strong> = 500<br>
<strong>GPHOTOS_INVALID_ARGUMENT</strong> = 601<br>
<strong>GPHOTOS_INVALID_CONTENT_TYPE</strong> = 602<br>
<strong>GPHOTOS_INVALID_KIND</strong> = 604<br>
<strong>GPHOTOS_NOT_AN_IMAGE</strong> = 603<br>
<strong>SUPPORTED_UPLOAD_TYPES</strong> = ('bmp', 'jpeg', 'jpg', 'gif', 'png')<br>
<strong>UNKOWN_ERROR</strong> = 1000<br>
<strong>__author__</strong> = u'havard@gulldahl.no'<br>
<strong>__license__</strong> = 'Apache License v2'<br>
<strong>__version__</strong> = '176'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
<tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td>
<td width="100%">havard@gulldahl.no</td></tr></table>
</body></html>