blob: d84b7c50f04833bd0cc6691fd80a58c2d2671b7f [file] [log] [blame]
Joe Gregorio6e537032011-02-09 23:04:26 -05001
2<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3<html><head><title>Python: module oauth2client.client</title>
4</head><body bgcolor="#f0f0f8">
5
6<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
7<tr bgcolor="#7799ee">
8<td valign=bottom>&nbsp;<br>
9<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.client</strong></big></big></font></td
10><td align=right valign=bottom
Joe Gregoriod02bf5e2012-03-02 13:21:32 -080011><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/google-api-python-client/oauth2client/client.py">/home/jcgregorio/projects/google-api-python-client/oauth2client/client.py</a></font></td></tr></table>
Joe Gregorioa8451672011-09-15 09:53:21 -040012 <p><tt>An&nbsp;OAuth&nbsp;2.0&nbsp;client.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -050013&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -040014Tools&nbsp;for&nbsp;interacting&nbsp;with&nbsp;OAuth&nbsp;2.0&nbsp;protected&nbsp;resources.</tt></p>
Joe Gregorio6e537032011-02-09 23:04:26 -050015<p>
16<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
17<tr bgcolor="#aa55cc">
18<td colspan=3 valign=bottom>&nbsp;<br>
19<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
20
21<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
Joe Gregoriob417caf2011-12-08 12:04:24 -050022<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="base64.html">base64</a><br>
23<a href="oauth2client.clientsecrets.html">oauth2client.clientsecrets</a><br>
Joe Gregorio761c4562011-10-28 14:36:24 -040024<a href="copy.html">copy</a><br>
Joe Gregoriob417caf2011-12-08 12:04:24 -050025</td><td width="25%" valign=top><a href="datetime.html">datetime</a><br>
26<a href="httplib2.html">httplib2</a><br>
Joe Gregorio6e537032011-02-09 23:04:26 -050027<a href="logging.html">logging</a><br>
Joe Gregoriob417caf2011-12-08 12:04:24 -050028</td><td width="25%" valign=top><a href="os.html">os</a><br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -050029<a href="json.html">json</a><br>
Joe Gregoriob417caf2011-12-08 12:04:24 -050030<a href="sys.html">sys</a><br>
31</td><td width="25%" valign=top><a href="time.html">time</a><br>
Joe Gregorio6e537032011-02-09 23:04:26 -050032<a href="urllib.html">urllib</a><br>
Joe Gregorio761c4562011-10-28 14:36:24 -040033<a href="urlparse.html">urlparse</a><br>
Joe Gregoriob417caf2011-12-08 12:04:24 -050034</td></tr></table></td></tr></table><p>
Joe Gregorio6e537032011-02-09 23:04:26 -050035<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
36<tr bgcolor="#ee77aa">
37<td colspan=3 valign=bottom>&nbsp;<br>
38<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
39
40<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
41<td width="100%"><dl>
42<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
43</font></dt><dd>
44<dl>
45<dt><font face="helvetica, arial"><a href="oauth2client.client.html#Credentials">Credentials</a>
46</font></dt><dd>
47<dl>
48<dt><font face="helvetica, arial"><a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050049</font></dt><dd>
50<dl>
51<dt><font face="helvetica, arial"><a href="oauth2client.client.html#AccessTokenCredentials">AccessTokenCredentials</a>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -040052</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.client.html#AssertionCredentials">AssertionCredentials</a>
Joe Gregoriob417caf2011-12-08 12:04:24 -050053</font></dt><dd>
54<dl>
55<dt><font face="helvetica, arial"><a href="oauth2client.client.html#SignedJwtAssertionCredentials">SignedJwtAssertionCredentials</a>
Joe Gregorio6e537032011-02-09 23:04:26 -050056</font></dt></dl>
57</dd>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050058</dl>
59</dd>
Joe Gregoriob417caf2011-12-08 12:04:24 -050060</dl>
61</dd>
Joe Gregorio6e537032011-02-09 23:04:26 -050062<dt><font face="helvetica, arial"><a href="oauth2client.client.html#Flow">Flow</a>
63</font></dt><dd>
64<dl>
65<dt><font face="helvetica, arial"><a href="oauth2client.client.html#OAuth2WebServerFlow">OAuth2WebServerFlow</a>
66</font></dt></dl>
67</dd>
Joe Gregorio3d55ac52012-02-21 10:11:19 -050068<dt><font face="helvetica, arial"><a href="oauth2client.client.html#MemoryCache">MemoryCache</a>
69</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.client.html#Storage">Storage</a>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050070</font></dt></dl>
Joe Gregorio6e537032011-02-09 23:04:26 -050071</dd>
72<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
73</font></dt><dd>
74<dl>
75<dt><font face="helvetica, arial"><a href="oauth2client.client.html#Error">Error</a>
76</font></dt><dd>
77<dl>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050078<dt><font face="helvetica, arial"><a href="oauth2client.client.html#AccessTokenCredentialsError">AccessTokenCredentialsError</a>
Joe Gregoriof8261112011-02-19 14:51:56 -050079</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.client.html#AccessTokenRefreshError">AccessTokenRefreshError</a>
80</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.client.html#FlowExchangeError">FlowExchangeError</a>
Joe Gregorio761c4562011-10-28 14:36:24 -040081</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.client.html#UnknownClientSecretsFlowError">UnknownClientSecretsFlowError</a>
Joe Gregoriob417caf2011-12-08 12:04:24 -050082</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.client.html#VerifyJwtTokenError">VerifyJwtTokenError</a>
Joe Gregorio6e537032011-02-09 23:04:26 -050083</font></dt></dl>
84</dd>
85</dl>
86</dd>
87</dl>
88 <p>
89<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
90<tr bgcolor="#ffc8d8">
91<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050092<font color="#000000" face="helvetica, arial"><a name="AccessTokenCredentials">class <strong>AccessTokenCredentials</strong></a>(<a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>)</font></td></tr>
93
94<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
Joe Gregorioa8451672011-09-15 09:53:21 -040095<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;2.0.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050096&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -040097<a href="#Credentials">Credentials</a>&nbsp;can&nbsp;be&nbsp;applied&nbsp;to&nbsp;an&nbsp;httplib2.Http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;using&nbsp;the<br>
98<a href="#AccessTokenCredentials-authorize">authorize</a>()&nbsp;method,&nbsp;which&nbsp;then&nbsp;signs&nbsp;each&nbsp;request&nbsp;from&nbsp;that&nbsp;<a href="__builtin__.html#object">object</a><br>
99with&nbsp;the&nbsp;OAuth&nbsp;2.0&nbsp;access&nbsp;token.&nbsp;&nbsp;This&nbsp;set&nbsp;of&nbsp;credentials&nbsp;is&nbsp;for&nbsp;the<br>
100use&nbsp;case&nbsp;where&nbsp;you&nbsp;have&nbsp;acquired&nbsp;an&nbsp;OAuth&nbsp;2.0&nbsp;access_token&nbsp;from<br>
101another&nbsp;place&nbsp;such&nbsp;as&nbsp;a&nbsp;JavaScript&nbsp;client&nbsp;or&nbsp;another&nbsp;web<br>
102application,&nbsp;and&nbsp;wish&nbsp;to&nbsp;use&nbsp;it&nbsp;from&nbsp;Python.&nbsp;Because&nbsp;only&nbsp;the<br>
103access_token&nbsp;is&nbsp;present&nbsp;it&nbsp;can&nbsp;not&nbsp;be&nbsp;refreshed&nbsp;and&nbsp;will&nbsp;in&nbsp;time<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500104expire.<br>
105&nbsp;<br>
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500106<a href="#AccessTokenCredentials">AccessTokenCredentials</a>&nbsp;objects&nbsp;may&nbsp;be&nbsp;safely&nbsp;pickled&nbsp;and&nbsp;unpickled.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500107&nbsp;<br>
108Usage:<br>
109&nbsp;&nbsp;credentials&nbsp;=&nbsp;<a href="#AccessTokenCredentials">AccessTokenCredentials</a>('&lt;an&nbsp;access&nbsp;token&gt;',<br>
110&nbsp;&nbsp;&nbsp;&nbsp;'my-user-agent/1.0')<br>
111&nbsp;&nbsp;http&nbsp;=&nbsp;httplib2.Http()<br>
112&nbsp;&nbsp;http&nbsp;=&nbsp;credentials.<a href="#AccessTokenCredentials-authorize">authorize</a>(http)<br>
113&nbsp;<br>
114Exceptions:<br>
115&nbsp;&nbsp;AccessTokenCredentialsExpired:&nbsp;raised&nbsp;when&nbsp;the&nbsp;access_token&nbsp;expires&nbsp;or&nbsp;is<br>
116&nbsp;&nbsp;&nbsp;&nbsp;revoked.<br>&nbsp;</tt></td></tr>
117<tr><td>&nbsp;</td>
118<td width="100%"><dl><dt>Method resolution order:</dt>
119<dd><a href="oauth2client.client.html#AccessTokenCredentials">AccessTokenCredentials</a></dd>
120<dd><a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a></dd>
121<dd><a href="oauth2client.client.html#Credentials">Credentials</a></dd>
122<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
123</dl>
124<hr>
125Methods defined here:<br>
126<dl><dt><a name="AccessTokenCredentials-__init__"><strong>__init__</strong></a>(self, access_token, user_agent)</dt><dd><tt>Create&nbsp;an&nbsp;instance&nbsp;of&nbsp;<a href="#OAuth2Credentials">OAuth2Credentials</a><br>
127&nbsp;<br>
128This&nbsp;is&nbsp;one&nbsp;of&nbsp;the&nbsp;few&nbsp;types&nbsp;if&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;you&nbsp;should&nbsp;contrust,<br>
129<a href="#Credentials">Credentials</a>&nbsp;objects&nbsp;are&nbsp;usually&nbsp;instantiated&nbsp;by&nbsp;a&nbsp;<a href="#Flow">Flow</a>.<br>
130&nbsp;<br>
131Args:<br>
Joe Gregorio93841702011-03-02 16:12:05 -0800132&nbsp;&nbsp;access_token:&nbsp;string,&nbsp;access&nbsp;token.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500133&nbsp;&nbsp;user_agent:&nbsp;string,&nbsp;The&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.<br>
134&nbsp;<br>
135Notes:<br>
136&nbsp;&nbsp;store:&nbsp;callable,&nbsp;a&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
137&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.</tt></dd></dl>
138
139<hr>
Joe Gregorioa8451672011-09-15 09:53:21 -0400140Class methods defined here:<br>
141<dl><dt><a name="AccessTokenCredentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt></dl>
142
143<hr>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500144Methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
145<dl><dt><a name="AccessTokenCredentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
146
147<dl><dt><a name="AccessTokenCredentials-__setstate__"><strong>__setstate__</strong></a>(self, state)</dt><dd><tt>Reconstitute&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;being&nbsp;pickled.</tt></dd></dl>
148
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500149<dl><dt><a name="AccessTokenCredentials-apply"><strong>apply</strong></a>(self, headers)</dt><dd><tt>Add&nbsp;the&nbsp;authorization&nbsp;to&nbsp;the&nbsp;headers.<br>
150&nbsp;<br>
151Args:<br>
152&nbsp;&nbsp;headers:&nbsp;dict,&nbsp;the&nbsp;headers&nbsp;to&nbsp;add&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;to.</tt></dd></dl>
153
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500154<dl><dt><a name="AccessTokenCredentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Authorize&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;with&nbsp;these&nbsp;credentials.<br>
155&nbsp;<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500156The&nbsp;modified&nbsp;http.request&nbsp;method&nbsp;will&nbsp;add&nbsp;authentication&nbsp;headers&nbsp;to&nbsp;each<br>
157request&nbsp;and&nbsp;will&nbsp;refresh&nbsp;access_tokens&nbsp;when&nbsp;a&nbsp;401&nbsp;is&nbsp;received&nbsp;on&nbsp;a<br>
158request.&nbsp;In&nbsp;addition&nbsp;the&nbsp;http.request&nbsp;method&nbsp;has&nbsp;a&nbsp;credentials&nbsp;property,<br>
159http.request.credentials,&nbsp;which&nbsp;is&nbsp;the&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;that&nbsp;authorized<br>
160it.<br>
161&nbsp;<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500162Args:<br>
163&nbsp;&nbsp;&nbsp;http:&nbsp;An&nbsp;instance&nbsp;of&nbsp;httplib2.Http<br>
164&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;something&nbsp;that&nbsp;acts&nbsp;like&nbsp;it.<br>
165&nbsp;<br>
166Returns:<br>
167&nbsp;&nbsp;&nbsp;A&nbsp;modified&nbsp;instance&nbsp;of&nbsp;http&nbsp;that&nbsp;was&nbsp;passed&nbsp;in.<br>
168&nbsp;<br>
169Example:<br>
170&nbsp;<br>
171&nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
172&nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#AccessTokenCredentials-authorize">authorize</a>(h)<br>
173&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400174You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
175because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
176signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
177that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
178version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500179
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500180<dl><dt><a name="AccessTokenCredentials-refresh"><strong>refresh</strong></a>(self, http)</dt><dd><tt>Forces&nbsp;a&nbsp;refresh&nbsp;of&nbsp;the&nbsp;access_token.<br>
181&nbsp;<br>
182Args:<br>
183&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;an&nbsp;http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;be&nbsp;used&nbsp;to&nbsp;make&nbsp;the&nbsp;refresh<br>
184&nbsp;&nbsp;&nbsp;&nbsp;request.</tt></dd></dl>
185
Joe Gregorioa8451672011-09-15 09:53:21 -0400186<dl><dt><a name="AccessTokenCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500187&nbsp;<br>
188Args:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400189&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500190&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400191&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
192&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
193&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
194
195<dl><dt><a name="AccessTokenCredentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500196
197<hr>
Joe Gregorio9ce4b622011-02-17 15:32:11 -0500198Data descriptors inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400199<dl><dt><strong>access_token_expired</strong></dt>
200<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
201&nbsp;<br>
202If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
Joe Gregorio9ce4b622011-02-17 15:32:11 -0500203</dl>
204<hr>
Joe Gregorioa8451672011-09-15 09:53:21 -0400205Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
206<dl><dt><a name="AccessTokenCredentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
207representation&nbsp;produced&nbsp;by&nbsp;<a href="#AccessTokenCredentials-to_json">to_json</a>().<br>
208&nbsp;<br>
209Args:<br>
210&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#AccessTokenCredentials-to_json">to_json</a>().<br>
211&nbsp;<br>
212Returns:<br>
213&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
214&nbsp;&nbsp;<a href="#AccessTokenCredentials-to_json">to_json</a>().</tt></dd></dl>
215
216<hr>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500217Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
218<dl><dt><strong>__dict__</strong></dt>
219<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
220</dl>
221<dl><dt><strong>__weakref__</strong></dt>
222<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
223</dl>
Joe Gregorioa8451672011-09-15 09:53:21 -0400224<hr>
225Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
226<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
227
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500228</td></tr></table> <p>
229<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
230<tr bgcolor="#ffc8d8">
231<td colspan=3 valign=bottom>&nbsp;<br>
232<font color="#000000" face="helvetica, arial"><a name="AccessTokenCredentialsError">class <strong>AccessTokenCredentialsError</strong></a>(<a href="oauth2client.client.html#Error">Error</a>)</font></td></tr>
233
234<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
235<td colspan=2><tt>Having&nbsp;only&nbsp;the&nbsp;access_token&nbsp;means&nbsp;no&nbsp;refresh&nbsp;is&nbsp;possible.<br>&nbsp;</tt></td></tr>
236<tr><td>&nbsp;</td>
237<td width="100%"><dl><dt>Method resolution order:</dt>
238<dd><a href="oauth2client.client.html#AccessTokenCredentialsError">AccessTokenCredentialsError</a></dd>
239<dd><a href="oauth2client.client.html#Error">Error</a></dd>
240<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
241<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
242<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
243</dl>
244<hr>
245Data descriptors inherited from <a href="oauth2client.client.html#Error">Error</a>:<br>
246<dl><dt><strong>__weakref__</strong></dt>
247<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
248</dl>
249<hr>
250Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500251<dl><dt><a name="AccessTokenCredentialsError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500252
253<hr>
254Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
255<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#AccessTokenCredentialsError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
256
257<hr>
258Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
259<dl><dt><a name="AccessTokenCredentialsError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
260
261<dl><dt><a name="AccessTokenCredentialsError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
262
263<dl><dt><a name="AccessTokenCredentialsError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
264
265<dl><dt><a name="AccessTokenCredentialsError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
266&nbsp;<br>
267Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
268
269<dl><dt><a name="AccessTokenCredentialsError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
270
271<dl><dt><a name="AccessTokenCredentialsError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
272
273<dl><dt><a name="AccessTokenCredentialsError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
274
275<dl><dt><a name="AccessTokenCredentialsError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
276
277<dl><dt><a name="AccessTokenCredentialsError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenCredentialsError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
278
279<dl><dt><a name="AccessTokenCredentialsError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
280
281<hr>
282Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
283<dl><dt><strong>__dict__</strong></dt>
284</dl>
285<dl><dt><strong>args</strong></dt>
286</dl>
287<dl><dt><strong>message</strong></dt>
288</dl>
289</td></tr></table> <p>
290<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
291<tr bgcolor="#ffc8d8">
292<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregoriof8261112011-02-19 14:51:56 -0500293<font color="#000000" face="helvetica, arial"><a name="AccessTokenRefreshError">class <strong>AccessTokenRefreshError</strong></a>(<a href="oauth2client.client.html#Error">Error</a>)</font></td></tr>
294
295<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
Joe Gregorioad258e22011-02-22 22:53:30 -0500296<td colspan=2><tt><a href="#Error">Error</a>&nbsp;trying&nbsp;to&nbsp;refresh&nbsp;an&nbsp;expired&nbsp;access&nbsp;token.<br>&nbsp;</tt></td></tr>
Joe Gregoriof8261112011-02-19 14:51:56 -0500297<tr><td>&nbsp;</td>
298<td width="100%"><dl><dt>Method resolution order:</dt>
299<dd><a href="oauth2client.client.html#AccessTokenRefreshError">AccessTokenRefreshError</a></dd>
300<dd><a href="oauth2client.client.html#Error">Error</a></dd>
301<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
302<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
303<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
304</dl>
305<hr>
306Data descriptors inherited from <a href="oauth2client.client.html#Error">Error</a>:<br>
307<dl><dt><strong>__weakref__</strong></dt>
308<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
309</dl>
310<hr>
311Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500312<dl><dt><a name="AccessTokenRefreshError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregoriof8261112011-02-19 14:51:56 -0500313
314<hr>
315Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
316<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#AccessTokenRefreshError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
317
318<hr>
319Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
320<dl><dt><a name="AccessTokenRefreshError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
321
322<dl><dt><a name="AccessTokenRefreshError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
323
324<dl><dt><a name="AccessTokenRefreshError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
325
326<dl><dt><a name="AccessTokenRefreshError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
327&nbsp;<br>
328Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
329
330<dl><dt><a name="AccessTokenRefreshError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
331
332<dl><dt><a name="AccessTokenRefreshError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
333
334<dl><dt><a name="AccessTokenRefreshError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
335
336<dl><dt><a name="AccessTokenRefreshError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
337
338<dl><dt><a name="AccessTokenRefreshError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#AccessTokenRefreshError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
339
340<dl><dt><a name="AccessTokenRefreshError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
341
342<hr>
343Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
344<dl><dt><strong>__dict__</strong></dt>
345</dl>
346<dl><dt><strong>args</strong></dt>
347</dl>
348<dl><dt><strong>message</strong></dt>
349</dl>
350</td></tr></table> <p>
351<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
352<tr bgcolor="#ffc8d8">
353<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400354<font color="#000000" face="helvetica, arial"><a name="AssertionCredentials">class <strong>AssertionCredentials</strong></a>(<a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>)</font></td></tr>
355
356<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
Joe Gregorioa8451672011-09-15 09:53:21 -0400357<td colspan=2><tt>Abstract&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;used&nbsp;for&nbsp;OAuth&nbsp;2.0&nbsp;assertion&nbsp;grants.<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400358&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400359This&nbsp;credential&nbsp;does&nbsp;not&nbsp;require&nbsp;a&nbsp;flow&nbsp;to&nbsp;instantiate&nbsp;because&nbsp;it<br>
360represents&nbsp;a&nbsp;two&nbsp;legged&nbsp;flow,&nbsp;and&nbsp;therefore&nbsp;has&nbsp;all&nbsp;of&nbsp;the&nbsp;required<br>
361information&nbsp;to&nbsp;generate&nbsp;and&nbsp;refresh&nbsp;its&nbsp;own&nbsp;access&nbsp;tokens.&nbsp;&nbsp;It&nbsp;must<br>
362be&nbsp;subclassed&nbsp;to&nbsp;generate&nbsp;the&nbsp;appropriate&nbsp;assertion&nbsp;string.<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400363&nbsp;<br>
364<a href="#AssertionCredentials">AssertionCredentials</a>&nbsp;objects&nbsp;may&nbsp;be&nbsp;safely&nbsp;pickled&nbsp;and&nbsp;unpickled.<br>&nbsp;</tt></td></tr>
365<tr><td>&nbsp;</td>
366<td width="100%"><dl><dt>Method resolution order:</dt>
367<dd><a href="oauth2client.client.html#AssertionCredentials">AssertionCredentials</a></dd>
368<dd><a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a></dd>
369<dd><a href="oauth2client.client.html#Credentials">Credentials</a></dd>
370<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
371</dl>
372<hr>
373Methods defined here:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400374<dl><dt><a name="AssertionCredentials-__init__"><strong>__init__</strong></a>(self, assertion_type, user_agent, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **unused_kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;AssertionFlowCredentials.<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400375&nbsp;<br>
376Args:<br>
377&nbsp;&nbsp;assertion_type:&nbsp;string,&nbsp;assertion&nbsp;type&nbsp;that&nbsp;will&nbsp;be&nbsp;declared&nbsp;to&nbsp;the&nbsp;auth<br>
378&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server<br>
379&nbsp;&nbsp;user_agent:&nbsp;string,&nbsp;The&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.<br>
380&nbsp;&nbsp;token_uri:&nbsp;string,&nbsp;URI&nbsp;for&nbsp;token&nbsp;endpoint.&nbsp;For&nbsp;convenience<br>
381&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;Google's&nbsp;endpoints&nbsp;but&nbsp;any&nbsp;OAuth&nbsp;2.0&nbsp;provider&nbsp;can&nbsp;be&nbsp;used.</tt></dd></dl>
382
383<hr>
384Methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
385<dl><dt><a name="AssertionCredentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
386
387<dl><dt><a name="AssertionCredentials-__setstate__"><strong>__setstate__</strong></a>(self, state)</dt><dd><tt>Reconstitute&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;being&nbsp;pickled.</tt></dd></dl>
388
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500389<dl><dt><a name="AssertionCredentials-apply"><strong>apply</strong></a>(self, headers)</dt><dd><tt>Add&nbsp;the&nbsp;authorization&nbsp;to&nbsp;the&nbsp;headers.<br>
390&nbsp;<br>
391Args:<br>
392&nbsp;&nbsp;headers:&nbsp;dict,&nbsp;the&nbsp;headers&nbsp;to&nbsp;add&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;to.</tt></dd></dl>
393
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400394<dl><dt><a name="AssertionCredentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Authorize&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;with&nbsp;these&nbsp;credentials.<br>
395&nbsp;<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500396The&nbsp;modified&nbsp;http.request&nbsp;method&nbsp;will&nbsp;add&nbsp;authentication&nbsp;headers&nbsp;to&nbsp;each<br>
397request&nbsp;and&nbsp;will&nbsp;refresh&nbsp;access_tokens&nbsp;when&nbsp;a&nbsp;401&nbsp;is&nbsp;received&nbsp;on&nbsp;a<br>
398request.&nbsp;In&nbsp;addition&nbsp;the&nbsp;http.request&nbsp;method&nbsp;has&nbsp;a&nbsp;credentials&nbsp;property,<br>
399http.request.credentials,&nbsp;which&nbsp;is&nbsp;the&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;that&nbsp;authorized<br>
400it.<br>
401&nbsp;<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400402Args:<br>
403&nbsp;&nbsp;&nbsp;http:&nbsp;An&nbsp;instance&nbsp;of&nbsp;httplib2.Http<br>
404&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;something&nbsp;that&nbsp;acts&nbsp;like&nbsp;it.<br>
405&nbsp;<br>
406Returns:<br>
407&nbsp;&nbsp;&nbsp;A&nbsp;modified&nbsp;instance&nbsp;of&nbsp;http&nbsp;that&nbsp;was&nbsp;passed&nbsp;in.<br>
408&nbsp;<br>
409Example:<br>
410&nbsp;<br>
411&nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
412&nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#AssertionCredentials-authorize">authorize</a>(h)<br>
413&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400414You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
415because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
416signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
417that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
418version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400419
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500420<dl><dt><a name="AssertionCredentials-refresh"><strong>refresh</strong></a>(self, http)</dt><dd><tt>Forces&nbsp;a&nbsp;refresh&nbsp;of&nbsp;the&nbsp;access_token.<br>
421&nbsp;<br>
422Args:<br>
423&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;an&nbsp;http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;be&nbsp;used&nbsp;to&nbsp;make&nbsp;the&nbsp;refresh<br>
424&nbsp;&nbsp;&nbsp;&nbsp;request.</tt></dd></dl>
425
Joe Gregorioa8451672011-09-15 09:53:21 -0400426<dl><dt><a name="AssertionCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400427&nbsp;<br>
428Args:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400429&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400430&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400431&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
432&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
433&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
434
435<dl><dt><a name="AssertionCredentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
436
437<hr>
438Class methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
439<dl><dt><a name="AssertionCredentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;a&nbsp;JSON&nbsp;description&nbsp;of&nbsp;it.&nbsp;The&nbsp;JSON<br>
440should&nbsp;have&nbsp;been&nbsp;produced&nbsp;by&nbsp;calling&nbsp;.<a href="#AssertionCredentials-to_json">to_json</a>()&nbsp;on&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>.<br>
441&nbsp;<br>
442Args:<br>
443&nbsp;&nbsp;data:&nbsp;dict,&nbsp;A&nbsp;deserialized&nbsp;JSON&nbsp;<a href="__builtin__.html#object">object</a>.<br>
444&nbsp;<br>
445Returns:<br>
446&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass.</tt></dd></dl>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400447
448<hr>
449Data descriptors inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400450<dl><dt><strong>access_token_expired</strong></dt>
451<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
452&nbsp;<br>
453If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400454</dl>
455<hr>
Joe Gregorioa8451672011-09-15 09:53:21 -0400456Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
457<dl><dt><a name="AssertionCredentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
458representation&nbsp;produced&nbsp;by&nbsp;<a href="#AssertionCredentials-to_json">to_json</a>().<br>
459&nbsp;<br>
460Args:<br>
461&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#AssertionCredentials-to_json">to_json</a>().<br>
462&nbsp;<br>
463Returns:<br>
464&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
465&nbsp;&nbsp;<a href="#AssertionCredentials-to_json">to_json</a>().</tt></dd></dl>
466
467<hr>
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400468Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
469<dl><dt><strong>__dict__</strong></dt>
470<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
471</dl>
472<dl><dt><strong>__weakref__</strong></dt>
473<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
474</dl>
Joe Gregorioa8451672011-09-15 09:53:21 -0400475<hr>
476Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
477<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
478
Joe Gregoriob9e63ff2011-06-30 12:38:10 -0400479</td></tr></table> <p>
480<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
481<tr bgcolor="#ffc8d8">
482<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500483<font color="#000000" face="helvetica, arial"><a name="Credentials">class <strong>Credentials</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
484
485<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
486<td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Credentials">Credentials</a>&nbsp;objects.<br>
487&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400488Subclasses&nbsp;must&nbsp;define&nbsp;an&nbsp;<a href="#Credentials-authorize">authorize</a>()&nbsp;method&nbsp;that&nbsp;applies&nbsp;the&nbsp;credentials&nbsp;to<br>
489an&nbsp;HTTP&nbsp;transport.<br>
490&nbsp;<br>
491Subclasses&nbsp;must&nbsp;also&nbsp;specify&nbsp;a&nbsp;classmethod&nbsp;named&nbsp;'from_json'&nbsp;that&nbsp;takes&nbsp;a&nbsp;JSON<br>
Joe Gregoriod02bf5e2012-03-02 13:21:32 -0800492string&nbsp;as&nbsp;input&nbsp;and&nbsp;returns&nbsp;an&nbsp;instaniated&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>.<br>&nbsp;</tt></td></tr>
Joe Gregorio6e537032011-02-09 23:04:26 -0500493<tr><td>&nbsp;</td>
494<td width="100%">Methods defined here:<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500495<dl><dt><a name="Credentials-apply"><strong>apply</strong></a>(self, headers)</dt><dd><tt>Add&nbsp;the&nbsp;authorization&nbsp;to&nbsp;the&nbsp;headers.<br>
496&nbsp;<br>
497Args:<br>
498&nbsp;&nbsp;headers:&nbsp;dict,&nbsp;the&nbsp;headers&nbsp;to&nbsp;add&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;to.</tt></dd></dl>
499
Joe Gregorio6e537032011-02-09 23:04:26 -0500500<dl><dt><a name="Credentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Take&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;(or&nbsp;equivalent)&nbsp;and<br>
501authorizes&nbsp;it&nbsp;for&nbsp;the&nbsp;set&nbsp;of&nbsp;credentials,&nbsp;usually&nbsp;by<br>
502replacing&nbsp;http.request()&nbsp;with&nbsp;a&nbsp;method&nbsp;that&nbsp;adds&nbsp;in<br>
503the&nbsp;appropriate&nbsp;headers&nbsp;and&nbsp;then&nbsp;delegates&nbsp;to&nbsp;the&nbsp;original<br>
504Http.request()&nbsp;method.</tt></dd></dl>
505
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500506<dl><dt><a name="Credentials-refresh"><strong>refresh</strong></a>(self, http)</dt><dd><tt>Forces&nbsp;a&nbsp;refresh&nbsp;of&nbsp;the&nbsp;access_token.<br>
507&nbsp;<br>
508Args:<br>
509&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;an&nbsp;http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;be&nbsp;used&nbsp;to&nbsp;make&nbsp;the&nbsp;refresh<br>
510&nbsp;&nbsp;&nbsp;&nbsp;request.</tt></dd></dl>
511
Joe Gregorioa8451672011-09-15 09:53:21 -0400512<dl><dt><a name="Credentials-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Creating&nbsp;a&nbsp;JSON&nbsp;representation&nbsp;of&nbsp;an&nbsp;instance&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>.<br>
513&nbsp;<br>
514Returns:<br>
515&nbsp;&nbsp;&nbsp;string,&nbsp;a&nbsp;JSON&nbsp;representation&nbsp;of&nbsp;this&nbsp;instance,&nbsp;suitable&nbsp;to&nbsp;pass&nbsp;to<br>
516&nbsp;&nbsp;&nbsp;from_json().</tt></dd></dl>
517
518<hr>
519Class methods defined here:<br>
520<dl><dt><a name="Credentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
521representation&nbsp;produced&nbsp;by&nbsp;<a href="#Credentials-to_json">to_json</a>().<br>
522&nbsp;<br>
523Args:<br>
524&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#Credentials-to_json">to_json</a>().<br>
525&nbsp;<br>
526Returns:<br>
527&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
528&nbsp;&nbsp;<a href="#Credentials-to_json">to_json</a>().</tt></dd></dl>
529
Joe Gregorio6e537032011-02-09 23:04:26 -0500530<hr>
531Data descriptors defined here:<br>
532<dl><dt><strong>__dict__</strong></dt>
533<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
534</dl>
535<dl><dt><strong>__weakref__</strong></dt>
536<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
537</dl>
Joe Gregorioa8451672011-09-15 09:53:21 -0400538<hr>
539Data and other attributes defined here:<br>
540<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
541
Joe Gregorio6e537032011-02-09 23:04:26 -0500542</td></tr></table> <p>
543<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
544<tr bgcolor="#ffc8d8">
545<td colspan=3 valign=bottom>&nbsp;<br>
546<font color="#000000" face="helvetica, arial"><a name="Error">class <strong>Error</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
547
548<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
549<td colspan=2><tt>Base&nbsp;error&nbsp;for&nbsp;this&nbsp;module.<br>&nbsp;</tt></td></tr>
550<tr><td>&nbsp;</td>
551<td width="100%"><dl><dt>Method resolution order:</dt>
552<dd><a href="oauth2client.client.html#Error">Error</a></dd>
553<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
554<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
555<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
556</dl>
557<hr>
558Data descriptors defined here:<br>
559<dl><dt><strong>__weakref__</strong></dt>
560<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
561</dl>
562<hr>
563Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500564<dl><dt><a name="Error-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregorio6e537032011-02-09 23:04:26 -0500565
566<hr>
567Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
568<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#Error-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
569
570<hr>
571Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
572<dl><dt><a name="Error-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
573
574<dl><dt><a name="Error-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
575
576<dl><dt><a name="Error-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
577
578<dl><dt><a name="Error-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
579&nbsp;<br>
580Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
581
582<dl><dt><a name="Error-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
583
584<dl><dt><a name="Error-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
585
586<dl><dt><a name="Error-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
587
588<dl><dt><a name="Error-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
589
590<dl><dt><a name="Error-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
591
592<dl><dt><a name="Error-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
593
594<hr>
595Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
596<dl><dt><strong>__dict__</strong></dt>
597</dl>
598<dl><dt><strong>args</strong></dt>
599</dl>
600<dl><dt><strong>message</strong></dt>
601</dl>
602</td></tr></table> <p>
603<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
604<tr bgcolor="#ffc8d8">
605<td colspan=3 valign=bottom>&nbsp;<br>
606<font color="#000000" face="helvetica, arial"><a name="Flow">class <strong>Flow</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
607
608<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
609<td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Flow">Flow</a>&nbsp;objects.<br>&nbsp;</tt></td></tr>
610<tr><td>&nbsp;</td>
611<td width="100%">Data descriptors defined here:<br>
612<dl><dt><strong>__dict__</strong></dt>
613<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
614</dl>
615<dl><dt><strong>__weakref__</strong></dt>
616<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
617</dl>
618</td></tr></table> <p>
619<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
620<tr bgcolor="#ffc8d8">
621<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregoriof8261112011-02-19 14:51:56 -0500622<font color="#000000" face="helvetica, arial"><a name="FlowExchangeError">class <strong>FlowExchangeError</strong></a>(<a href="oauth2client.client.html#Error">Error</a>)</font></td></tr>
623
624<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
Joe Gregorioad258e22011-02-22 22:53:30 -0500625<td colspan=2><tt><a href="#Error">Error</a>&nbsp;trying&nbsp;to&nbsp;exchange&nbsp;an&nbsp;authorization&nbsp;grant&nbsp;for&nbsp;an&nbsp;access&nbsp;token.<br>&nbsp;</tt></td></tr>
Joe Gregoriof8261112011-02-19 14:51:56 -0500626<tr><td>&nbsp;</td>
627<td width="100%"><dl><dt>Method resolution order:</dt>
628<dd><a href="oauth2client.client.html#FlowExchangeError">FlowExchangeError</a></dd>
629<dd><a href="oauth2client.client.html#Error">Error</a></dd>
630<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
631<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
632<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
633</dl>
634<hr>
635Data descriptors inherited from <a href="oauth2client.client.html#Error">Error</a>:<br>
636<dl><dt><strong>__weakref__</strong></dt>
637<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
638</dl>
639<hr>
640Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500641<dl><dt><a name="FlowExchangeError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregoriof8261112011-02-19 14:51:56 -0500642
643<hr>
644Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
645<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#FlowExchangeError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
646
647<hr>
648Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
649<dl><dt><a name="FlowExchangeError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
650
651<dl><dt><a name="FlowExchangeError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
652
653<dl><dt><a name="FlowExchangeError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
654
655<dl><dt><a name="FlowExchangeError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
656&nbsp;<br>
657Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
658
659<dl><dt><a name="FlowExchangeError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
660
661<dl><dt><a name="FlowExchangeError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
662
663<dl><dt><a name="FlowExchangeError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
664
665<dl><dt><a name="FlowExchangeError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
666
667<dl><dt><a name="FlowExchangeError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#FlowExchangeError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
668
669<dl><dt><a name="FlowExchangeError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
670
671<hr>
672Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
673<dl><dt><strong>__dict__</strong></dt>
674</dl>
675<dl><dt><strong>args</strong></dt>
676</dl>
677<dl><dt><strong>message</strong></dt>
678</dl>
679</td></tr></table> <p>
680<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
681<tr bgcolor="#ffc8d8">
682<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500683<font color="#000000" face="helvetica, arial"><a name="MemoryCache">class <strong>MemoryCache</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
684
685<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
686<td colspan=2><tt>httplib2&nbsp;Cache&nbsp;implementation&nbsp;which&nbsp;only&nbsp;caches&nbsp;locally.<br>&nbsp;</tt></td></tr>
687<tr><td>&nbsp;</td>
688<td width="100%">Methods defined here:<br>
689<dl><dt><a name="MemoryCache-__init__"><strong>__init__</strong></a>(self)</dt></dl>
690
691<dl><dt><a name="MemoryCache-delete"><strong>delete</strong></a>(self, key)</dt></dl>
692
693<dl><dt><a name="MemoryCache-get"><strong>get</strong></a>(self, key)</dt></dl>
694
695<dl><dt><a name="MemoryCache-set"><strong>set</strong></a>(self, key, value)</dt></dl>
696
697<hr>
698Data descriptors defined here:<br>
699<dl><dt><strong>__dict__</strong></dt>
700<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
701</dl>
702<dl><dt><strong>__weakref__</strong></dt>
703<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
704</dl>
705</td></tr></table> <p>
706<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
707<tr bgcolor="#ffc8d8">
708<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500709<font color="#000000" face="helvetica, arial"><a name="OAuth2Credentials">class <strong>OAuth2Credentials</strong></a>(<a href="oauth2client.client.html#Credentials">Credentials</a>)</font></td></tr>
710
711<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
Joe Gregorioa8451672011-09-15 09:53:21 -0400712<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;2.0.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500713&nbsp;<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500714<a href="#Credentials">Credentials</a>&nbsp;can&nbsp;be&nbsp;applied&nbsp;to&nbsp;an&nbsp;httplib2.Http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;using&nbsp;the&nbsp;<a href="#OAuth2Credentials-authorize">authorize</a>()<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500715method,&nbsp;which&nbsp;then&nbsp;adds&nbsp;the&nbsp;OAuth&nbsp;2.0&nbsp;access&nbsp;token&nbsp;to&nbsp;each&nbsp;request.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500716&nbsp;<br>
717<a href="#OAuth2Credentials">OAuth2Credentials</a>&nbsp;objects&nbsp;may&nbsp;be&nbsp;safely&nbsp;pickled&nbsp;and&nbsp;unpickled.<br>&nbsp;</tt></td></tr>
718<tr><td>&nbsp;</td>
719<td width="100%"><dl><dt>Method resolution order:</dt>
720<dd><a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a></dd>
721<dd><a href="oauth2client.client.html#Credentials">Credentials</a></dd>
722<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
723</dl>
724<hr>
725Methods defined here:<br>
726<dl><dt><a name="OAuth2Credentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
727
Joe Gregoriob417caf2011-12-08 12:04:24 -0500728<dl><dt><a name="OAuth2Credentials-__init__"><strong>__init__</strong></a>(self, access_token, client_id, client_secret, refresh_token, token_expiry, token_uri, user_agent, id_token<font color="#909090">=None</font>)</dt><dd><tt>Create&nbsp;an&nbsp;instance&nbsp;of&nbsp;<a href="#OAuth2Credentials">OAuth2Credentials</a>.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500729&nbsp;<br>
730This&nbsp;constructor&nbsp;is&nbsp;not&nbsp;usually&nbsp;called&nbsp;by&nbsp;the&nbsp;user,&nbsp;instead<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500731<a href="#OAuth2Credentials">OAuth2Credentials</a>&nbsp;objects&nbsp;are&nbsp;instantiated&nbsp;by&nbsp;the&nbsp;<a href="#OAuth2WebServerFlow">OAuth2WebServerFlow</a>.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500732&nbsp;<br>
733Args:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400734&nbsp;&nbsp;access_token:&nbsp;string,&nbsp;access&nbsp;token.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500735&nbsp;&nbsp;client_id:&nbsp;string,&nbsp;client&nbsp;identifier.<br>
736&nbsp;&nbsp;client_secret:&nbsp;string,&nbsp;client&nbsp;secret.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500737&nbsp;&nbsp;refresh_token:&nbsp;string,&nbsp;refresh&nbsp;token.<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400738&nbsp;&nbsp;token_expiry:&nbsp;datetime,&nbsp;when&nbsp;the&nbsp;access_token&nbsp;expires.<br>
739&nbsp;&nbsp;token_uri:&nbsp;string,&nbsp;URI&nbsp;of&nbsp;token&nbsp;endpoint.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500740&nbsp;&nbsp;user_agent:&nbsp;string,&nbsp;The&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500741&nbsp;&nbsp;id_token:&nbsp;<a href="__builtin__.html#object">object</a>,&nbsp;The&nbsp;identity&nbsp;of&nbsp;the&nbsp;resource&nbsp;owner.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500742&nbsp;<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500743Notes:<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500744&nbsp;&nbsp;store:&nbsp;callable,&nbsp;A&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500745&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.<br>
746&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
747&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.</tt></dd></dl>
748
749<dl><dt><a name="OAuth2Credentials-__setstate__"><strong>__setstate__</strong></a>(self, state)</dt><dd><tt>Reconstitute&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;being&nbsp;pickled.</tt></dd></dl>
750
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500751<dl><dt><a name="OAuth2Credentials-apply"><strong>apply</strong></a>(self, headers)</dt><dd><tt>Add&nbsp;the&nbsp;authorization&nbsp;to&nbsp;the&nbsp;headers.<br>
752&nbsp;<br>
753Args:<br>
754&nbsp;&nbsp;headers:&nbsp;dict,&nbsp;the&nbsp;headers&nbsp;to&nbsp;add&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;to.</tt></dd></dl>
755
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500756<dl><dt><a name="OAuth2Credentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Authorize&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;with&nbsp;these&nbsp;credentials.<br>
757&nbsp;<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500758The&nbsp;modified&nbsp;http.request&nbsp;method&nbsp;will&nbsp;add&nbsp;authentication&nbsp;headers&nbsp;to&nbsp;each<br>
759request&nbsp;and&nbsp;will&nbsp;refresh&nbsp;access_tokens&nbsp;when&nbsp;a&nbsp;401&nbsp;is&nbsp;received&nbsp;on&nbsp;a<br>
760request.&nbsp;In&nbsp;addition&nbsp;the&nbsp;http.request&nbsp;method&nbsp;has&nbsp;a&nbsp;credentials&nbsp;property,<br>
761http.request.credentials,&nbsp;which&nbsp;is&nbsp;the&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;that&nbsp;authorized<br>
762it.<br>
763&nbsp;<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500764Args:<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500765&nbsp;&nbsp;&nbsp;http:&nbsp;An&nbsp;instance&nbsp;of&nbsp;httplib2.Http<br>
766&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;something&nbsp;that&nbsp;acts&nbsp;like&nbsp;it.<br>
767&nbsp;<br>
768Returns:<br>
769&nbsp;&nbsp;&nbsp;A&nbsp;modified&nbsp;instance&nbsp;of&nbsp;http&nbsp;that&nbsp;was&nbsp;passed&nbsp;in.<br>
770&nbsp;<br>
771Example:<br>
772&nbsp;<br>
773&nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
774&nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#OAuth2Credentials-authorize">authorize</a>(h)<br>
775&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400776You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
777because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
778signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
779that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
780version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
Joe Gregorio6e537032011-02-09 23:04:26 -0500781
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500782<dl><dt><a name="OAuth2Credentials-refresh"><strong>refresh</strong></a>(self, http)</dt><dd><tt>Forces&nbsp;a&nbsp;refresh&nbsp;of&nbsp;the&nbsp;access_token.<br>
783&nbsp;<br>
784Args:<br>
785&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;an&nbsp;http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;be&nbsp;used&nbsp;to&nbsp;make&nbsp;the&nbsp;refresh<br>
786&nbsp;&nbsp;&nbsp;&nbsp;request.</tt></dd></dl>
787
Joe Gregorioa8451672011-09-15 09:53:21 -0400788<dl><dt><a name="OAuth2Credentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500789&nbsp;<br>
790Args:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400791&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500792&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400793&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
794&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
795&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
796
797<dl><dt><a name="OAuth2Credentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
798
799<hr>
800Class methods defined here:<br>
801<dl><dt><a name="OAuth2Credentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;a&nbsp;JSON&nbsp;description&nbsp;of&nbsp;it.&nbsp;The&nbsp;JSON<br>
802should&nbsp;have&nbsp;been&nbsp;produced&nbsp;by&nbsp;calling&nbsp;.<a href="#OAuth2Credentials-to_json">to_json</a>()&nbsp;on&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>.<br>
803&nbsp;<br>
804Args:<br>
805&nbsp;&nbsp;data:&nbsp;dict,&nbsp;A&nbsp;deserialized&nbsp;JSON&nbsp;<a href="__builtin__.html#object">object</a>.<br>
806&nbsp;<br>
807Returns:<br>
808&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass.</tt></dd></dl>
Joe Gregorio6e537032011-02-09 23:04:26 -0500809
810<hr>
Joe Gregorio9ce4b622011-02-17 15:32:11 -0500811Data descriptors defined here:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -0400812<dl><dt><strong>access_token_expired</strong></dt>
813<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
814&nbsp;<br>
815If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
Joe Gregorio9ce4b622011-02-17 15:32:11 -0500816</dl>
817<hr>
Joe Gregorioa8451672011-09-15 09:53:21 -0400818Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
819<dl><dt><a name="OAuth2Credentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
820representation&nbsp;produced&nbsp;by&nbsp;<a href="#OAuth2Credentials-to_json">to_json</a>().<br>
821&nbsp;<br>
822Args:<br>
823&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#OAuth2Credentials-to_json">to_json</a>().<br>
824&nbsp;<br>
825Returns:<br>
826&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
827&nbsp;&nbsp;<a href="#OAuth2Credentials-to_json">to_json</a>().</tt></dd></dl>
828
829<hr>
Joe Gregorio6e537032011-02-09 23:04:26 -0500830Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
831<dl><dt><strong>__dict__</strong></dt>
832<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
833</dl>
834<dl><dt><strong>__weakref__</strong></dt>
835<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
836</dl>
Joe Gregorioa8451672011-09-15 09:53:21 -0400837<hr>
838Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
839<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
840
Joe Gregorio6e537032011-02-09 23:04:26 -0500841</td></tr></table> <p>
842<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
843<tr bgcolor="#ffc8d8">
844<td colspan=3 valign=bottom>&nbsp;<br>
845<font color="#000000" face="helvetica, arial"><a name="OAuth2WebServerFlow">class <strong>OAuth2WebServerFlow</strong></a>(<a href="oauth2client.client.html#Flow">Flow</a>)</font></td></tr>
846
847<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
848<td colspan=2><tt>Does&nbsp;the&nbsp;Web&nbsp;Server&nbsp;<a href="#Flow">Flow</a>&nbsp;for&nbsp;OAuth&nbsp;2.0.<br>
849&nbsp;<br>
850<a href="#OAuth2Credentials">OAuth2Credentials</a>&nbsp;objects&nbsp;may&nbsp;be&nbsp;safely&nbsp;pickled&nbsp;and&nbsp;unpickled.<br>&nbsp;</tt></td></tr>
851<tr><td>&nbsp;</td>
852<td width="100%"><dl><dt>Method resolution order:</dt>
853<dd><a href="oauth2client.client.html#OAuth2WebServerFlow">OAuth2WebServerFlow</a></dd>
854<dd><a href="oauth2client.client.html#Flow">Flow</a></dd>
855<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
856</dl>
857<hr>
858Methods defined here:<br>
Joe Gregorio761c4562011-10-28 14:36:24 -0400859<dl><dt><a name="OAuth2WebServerFlow-__init__"><strong>__init__</strong></a>(self, client_id, client_secret, scope, user_agent<font color="#909090">=None</font>, auth_uri<font color="#909090">='https://accounts.google.com/o/oauth2/auth'</font>, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;<a href="#OAuth2WebServerFlow">OAuth2WebServerFlow</a>.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500860&nbsp;<br>
861Args:<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500862&nbsp;&nbsp;client_id:&nbsp;string,&nbsp;client&nbsp;identifier.<br>
863&nbsp;&nbsp;client_secret:&nbsp;string&nbsp;client&nbsp;secret.<br>
Joe Gregorio761c4562011-10-28 14:36:24 -0400864&nbsp;&nbsp;scope:&nbsp;string&nbsp;or&nbsp;list&nbsp;of&nbsp;strings,&nbsp;scope(s)&nbsp;of&nbsp;the&nbsp;credentials&nbsp;being<br>
865&nbsp;&nbsp;&nbsp;&nbsp;requested.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500866&nbsp;&nbsp;user_agent:&nbsp;string,&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -0500867&nbsp;&nbsp;auth_uri:&nbsp;string,&nbsp;URI&nbsp;for&nbsp;authorization&nbsp;endpoint.&nbsp;For&nbsp;convenience<br>
868&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;Google's&nbsp;endpoints&nbsp;but&nbsp;any&nbsp;OAuth&nbsp;2.0&nbsp;provider&nbsp;can&nbsp;be&nbsp;used.<br>
869&nbsp;&nbsp;token_uri:&nbsp;string,&nbsp;URI&nbsp;for&nbsp;token&nbsp;endpoint.&nbsp;For&nbsp;convenience<br>
870&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;Google's&nbsp;endpoints&nbsp;but&nbsp;any&nbsp;OAuth&nbsp;2.0&nbsp;provider&nbsp;can&nbsp;be&nbsp;used.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500871&nbsp;&nbsp;**kwargs:&nbsp;dict,&nbsp;The&nbsp;keyword&nbsp;arguments&nbsp;are&nbsp;all&nbsp;optional&nbsp;and&nbsp;required<br>
872&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters&nbsp;for&nbsp;the&nbsp;OAuth&nbsp;calls.</tt></dd></dl>
873
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500874<dl><dt><a name="OAuth2WebServerFlow-step1_get_authorize_url"><strong>step1_get_authorize_url</strong></a>(self, redirect_uri<font color="#909090">='urn:ietf:wg:oauth:2.0:oob'</font>)</dt><dd><tt>Returns&nbsp;a&nbsp;URI&nbsp;to&nbsp;redirect&nbsp;to&nbsp;the&nbsp;provider.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500875&nbsp;<br>
876Args:<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500877&nbsp;&nbsp;redirect_uri:&nbsp;string,&nbsp;Either&nbsp;the&nbsp;string&nbsp;'urn:ietf:wg:oauth:2.0:oob'&nbsp;for<br>
878&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;non-web-based&nbsp;application,&nbsp;or&nbsp;a&nbsp;URI&nbsp;that&nbsp;handles&nbsp;the&nbsp;callback&nbsp;from<br>
879&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;authorization&nbsp;server.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500880&nbsp;<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500881If&nbsp;redirect_uri&nbsp;is&nbsp;'urn:ietf:wg:oauth:2.0:oob'&nbsp;then&nbsp;pass&nbsp;in&nbsp;the<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500882generated&nbsp;verification&nbsp;code&nbsp;to&nbsp;step2_exchange,<br>
883otherwise&nbsp;pass&nbsp;in&nbsp;the&nbsp;query&nbsp;parameters&nbsp;received<br>
884at&nbsp;the&nbsp;callback&nbsp;uri&nbsp;to&nbsp;step2_exchange.</tt></dd></dl>
885
Joe Gregoriof8261112011-02-19 14:51:56 -0500886<dl><dt><a name="OAuth2WebServerFlow-step2_exchange"><strong>step2_exchange</strong></a>(self, code, http<font color="#909090">=None</font>)</dt><dd><tt>Exhanges&nbsp;a&nbsp;code&nbsp;for&nbsp;<a href="#OAuth2Credentials">OAuth2Credentials</a>.<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500887&nbsp;<br>
888Args:<br>
889&nbsp;&nbsp;code:&nbsp;string&nbsp;or&nbsp;dict,&nbsp;either&nbsp;the&nbsp;code&nbsp;as&nbsp;a&nbsp;string,&nbsp;or&nbsp;a&nbsp;dictionary<br>
890&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;the&nbsp;query&nbsp;parameters&nbsp;to&nbsp;the&nbsp;redirect_uri,&nbsp;which&nbsp;contains<br>
Joe Gregoriof8261112011-02-19 14:51:56 -0500891&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;code.<br>
892&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;optional&nbsp;http&nbsp;instance&nbsp;to&nbsp;use&nbsp;to&nbsp;do&nbsp;the&nbsp;fetch</tt></dd></dl>
Joe Gregorio6e537032011-02-09 23:04:26 -0500893
894<hr>
895Data descriptors inherited from <a href="oauth2client.client.html#Flow">Flow</a>:<br>
896<dl><dt><strong>__dict__</strong></dt>
897<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
898</dl>
899<dl><dt><strong>__weakref__</strong></dt>
900<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
901</dl>
902</td></tr></table> <p>
903<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
904<tr bgcolor="#ffc8d8">
905<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500906<font color="#000000" face="helvetica, arial"><a name="SignedJwtAssertionCredentials">class <strong>SignedJwtAssertionCredentials</strong></a>(<a href="oauth2client.client.html#AssertionCredentials">AssertionCredentials</a>)</font></td></tr>
907
908<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
909<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;used&nbsp;for&nbsp;OAuth&nbsp;2.0&nbsp;Signed&nbsp;JWT&nbsp;assertion&nbsp;grants.<br>
910&nbsp;<br>
911This&nbsp;credential&nbsp;does&nbsp;not&nbsp;require&nbsp;a&nbsp;flow&nbsp;to&nbsp;instantiate&nbsp;because&nbsp;it<br>
912represents&nbsp;a&nbsp;two&nbsp;legged&nbsp;flow,&nbsp;and&nbsp;therefore&nbsp;has&nbsp;all&nbsp;of&nbsp;the&nbsp;required<br>
913information&nbsp;to&nbsp;generate&nbsp;and&nbsp;refresh&nbsp;its&nbsp;own&nbsp;access&nbsp;tokens.<br>&nbsp;</tt></td></tr>
914<tr><td>&nbsp;</td>
915<td width="100%"><dl><dt>Method resolution order:</dt>
916<dd><a href="oauth2client.client.html#SignedJwtAssertionCredentials">SignedJwtAssertionCredentials</a></dd>
917<dd><a href="oauth2client.client.html#AssertionCredentials">AssertionCredentials</a></dd>
918<dd><a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a></dd>
919<dd><a href="oauth2client.client.html#Credentials">Credentials</a></dd>
920<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
921</dl>
922<hr>
923Methods defined here:<br>
924<dl><dt><a name="SignedJwtAssertionCredentials-__init__"><strong>__init__</strong></a>(self, service_account_name, private_key, scope, private_key_password<font color="#909090">='notasecret'</font>, user_agent<font color="#909090">=None</font>, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;<a href="#SignedJwtAssertionCredentials">SignedJwtAssertionCredentials</a>.<br>
925&nbsp;<br>
926Args:<br>
927&nbsp;&nbsp;service_account_name:&nbsp;string,&nbsp;id&nbsp;for&nbsp;account,&nbsp;usually&nbsp;an&nbsp;email&nbsp;address.<br>
928&nbsp;&nbsp;private_key:&nbsp;string,&nbsp;private&nbsp;key&nbsp;in&nbsp;P12&nbsp;format.<br>
929&nbsp;&nbsp;scope:&nbsp;string&nbsp;or&nbsp;list&nbsp;of&nbsp;strings,&nbsp;scope(s)&nbsp;of&nbsp;the&nbsp;credentials&nbsp;being<br>
930&nbsp;&nbsp;&nbsp;&nbsp;requested.<br>
931&nbsp;&nbsp;private_key_password:&nbsp;string,&nbsp;password&nbsp;for&nbsp;private_key.<br>
932&nbsp;&nbsp;user_agent:&nbsp;string,&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.<br>
933&nbsp;&nbsp;token_uri:&nbsp;string,&nbsp;URI&nbsp;for&nbsp;token&nbsp;endpoint.&nbsp;For&nbsp;convenience<br>
934&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;Google's&nbsp;endpoints&nbsp;but&nbsp;any&nbsp;OAuth&nbsp;2.0&nbsp;provider&nbsp;can&nbsp;be&nbsp;used.<br>
935&nbsp;&nbsp;kwargs:&nbsp;kwargs,&nbsp;Additional&nbsp;parameters&nbsp;to&nbsp;add&nbsp;to&nbsp;the&nbsp;JWT&nbsp;token,&nbsp;for<br>
936&nbsp;&nbsp;&nbsp;&nbsp;example&nbsp;prn=joe@xample.org.</tt></dd></dl>
937
938<hr>
939Class methods defined here:<br>
940<dl><dt><a name="SignedJwtAssertionCredentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt></dl>
941
942<hr>
943Data and other attributes defined here:<br>
944<dl><dt><strong>MAX_TOKEN_LIFETIME_SECS</strong> = 3600</dl>
945
946<hr>
947Methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
948<dl><dt><a name="SignedJwtAssertionCredentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
949
950<dl><dt><a name="SignedJwtAssertionCredentials-__setstate__"><strong>__setstate__</strong></a>(self, state)</dt><dd><tt>Reconstitute&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;being&nbsp;pickled.</tt></dd></dl>
951
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500952<dl><dt><a name="SignedJwtAssertionCredentials-apply"><strong>apply</strong></a>(self, headers)</dt><dd><tt>Add&nbsp;the&nbsp;authorization&nbsp;to&nbsp;the&nbsp;headers.<br>
953&nbsp;<br>
954Args:<br>
955&nbsp;&nbsp;headers:&nbsp;dict,&nbsp;the&nbsp;headers&nbsp;to&nbsp;add&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;to.</tt></dd></dl>
956
Joe Gregoriob417caf2011-12-08 12:04:24 -0500957<dl><dt><a name="SignedJwtAssertionCredentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Authorize&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;with&nbsp;these&nbsp;credentials.<br>
958&nbsp;<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500959The&nbsp;modified&nbsp;http.request&nbsp;method&nbsp;will&nbsp;add&nbsp;authentication&nbsp;headers&nbsp;to&nbsp;each<br>
960request&nbsp;and&nbsp;will&nbsp;refresh&nbsp;access_tokens&nbsp;when&nbsp;a&nbsp;401&nbsp;is&nbsp;received&nbsp;on&nbsp;a<br>
961request.&nbsp;In&nbsp;addition&nbsp;the&nbsp;http.request&nbsp;method&nbsp;has&nbsp;a&nbsp;credentials&nbsp;property,<br>
962http.request.credentials,&nbsp;which&nbsp;is&nbsp;the&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;that&nbsp;authorized<br>
963it.<br>
964&nbsp;<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -0500965Args:<br>
966&nbsp;&nbsp;&nbsp;http:&nbsp;An&nbsp;instance&nbsp;of&nbsp;httplib2.Http<br>
967&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;something&nbsp;that&nbsp;acts&nbsp;like&nbsp;it.<br>
968&nbsp;<br>
969Returns:<br>
970&nbsp;&nbsp;&nbsp;A&nbsp;modified&nbsp;instance&nbsp;of&nbsp;http&nbsp;that&nbsp;was&nbsp;passed&nbsp;in.<br>
971&nbsp;<br>
972Example:<br>
973&nbsp;<br>
974&nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
975&nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#SignedJwtAssertionCredentials-authorize">authorize</a>(h)<br>
976&nbsp;<br>
977You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
978because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
979signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
980that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
981version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
982
Joe Gregorio3d55ac52012-02-21 10:11:19 -0500983<dl><dt><a name="SignedJwtAssertionCredentials-refresh"><strong>refresh</strong></a>(self, http)</dt><dd><tt>Forces&nbsp;a&nbsp;refresh&nbsp;of&nbsp;the&nbsp;access_token.<br>
984&nbsp;<br>
985Args:<br>
986&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;an&nbsp;http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;be&nbsp;used&nbsp;to&nbsp;make&nbsp;the&nbsp;refresh<br>
987&nbsp;&nbsp;&nbsp;&nbsp;request.</tt></dd></dl>
988
Joe Gregoriob417caf2011-12-08 12:04:24 -0500989<dl><dt><a name="SignedJwtAssertionCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
990&nbsp;<br>
991Args:<br>
992&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
993&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
994&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
995&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
996&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
997
998<dl><dt><a name="SignedJwtAssertionCredentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
999
1000<hr>
1001Data descriptors inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
1002<dl><dt><strong>access_token_expired</strong></dt>
1003<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
1004&nbsp;<br>
1005If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
1006</dl>
1007<hr>
1008Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
1009<dl><dt><a name="SignedJwtAssertionCredentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
1010representation&nbsp;produced&nbsp;by&nbsp;<a href="#SignedJwtAssertionCredentials-to_json">to_json</a>().<br>
1011&nbsp;<br>
1012Args:<br>
1013&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#SignedJwtAssertionCredentials-to_json">to_json</a>().<br>
1014&nbsp;<br>
1015Returns:<br>
1016&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
1017&nbsp;&nbsp;<a href="#SignedJwtAssertionCredentials-to_json">to_json</a>().</tt></dd></dl>
1018
1019<hr>
1020Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
1021<dl><dt><strong>__dict__</strong></dt>
1022<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
1023</dl>
1024<dl><dt><strong>__weakref__</strong></dt>
1025<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
1026</dl>
1027<hr>
1028Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
1029<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
1030
1031</td></tr></table> <p>
1032<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
1033<tr bgcolor="#ffc8d8">
1034<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001035<font color="#000000" face="helvetica, arial"><a name="Storage">class <strong>Storage</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
1036
1037<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
1038<td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Storage">Storage</a>&nbsp;objects.<br>
1039&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -04001040Store&nbsp;and&nbsp;retrieve&nbsp;a&nbsp;single&nbsp;credential.&nbsp;&nbsp;This&nbsp;class&nbsp;supports&nbsp;locking<br>
1041such&nbsp;that&nbsp;multiple&nbsp;processes&nbsp;and&nbsp;threads&nbsp;can&nbsp;operate&nbsp;on&nbsp;a&nbsp;single<br>
1042store.<br>&nbsp;</tt></td></tr>
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001043<tr><td>&nbsp;</td>
1044<td width="100%">Methods defined here:<br>
Joe Gregorioa8451672011-09-15 09:53:21 -04001045<dl><dt><a name="Storage-acquire_lock"><strong>acquire_lock</strong></a>(self)</dt><dd><tt>Acquires&nbsp;any&nbsp;lock&nbsp;necessary&nbsp;to&nbsp;access&nbsp;this&nbsp;<a href="#Storage">Storage</a>.<br>
1046&nbsp;<br>
1047This&nbsp;lock&nbsp;is&nbsp;not&nbsp;reentrant.</tt></dd></dl>
1048
Joe Gregorio3d55ac52012-02-21 10:11:19 -05001049<dl><dt><a name="Storage-delete"><strong>delete</strong></a>(self)</dt><dd><tt>Delete&nbsp;credential.<br>
1050&nbsp;<br>
1051Frees&nbsp;any&nbsp;resources&nbsp;associated&nbsp;with&nbsp;storing&nbsp;the&nbsp;credential.<br>
1052The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;*not*&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
1053&nbsp;<br>
1054Returns:<br>
1055&nbsp;&nbsp;None</tt></dd></dl>
1056
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001057<dl><dt><a name="Storage-get"><strong>get</strong></a>(self)</dt><dd><tt>Retrieve&nbsp;credential.<br>
1058&nbsp;<br>
Joe Gregorioa8451672011-09-15 09:53:21 -04001059The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;*not*&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
1060&nbsp;<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001061Returns:<br>
Joe Gregorio20a5aa92011-04-01 17:44:25 -04001062&nbsp;&nbsp;oauth2client.client.<a href="#Credentials">Credentials</a></tt></dd></dl>
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001063
Joe Gregorio3d55ac52012-02-21 10:11:19 -05001064<dl><dt><a name="Storage-locked_delete"><strong>locked_delete</strong></a>(self)</dt><dd><tt>Delete&nbsp;a&nbsp;credential.<br>
1065&nbsp;<br>
1066The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.</tt></dd></dl>
1067
Joe Gregorioa8451672011-09-15 09:53:21 -04001068<dl><dt><a name="Storage-locked_get"><strong>locked_get</strong></a>(self)</dt><dd><tt>Retrieve&nbsp;credential.<br>
1069&nbsp;<br>
1070The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
1071&nbsp;<br>
1072Returns:<br>
1073&nbsp;&nbsp;oauth2client.client.<a href="#Credentials">Credentials</a></tt></dd></dl>
1074
1075<dl><dt><a name="Storage-locked_put"><strong>locked_put</strong></a>(self, credentials)</dt><dd><tt>Write&nbsp;a&nbsp;credential.<br>
1076&nbsp;<br>
1077The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001078&nbsp;<br>
1079Args:<br>
1080&nbsp;&nbsp;credentials:&nbsp;<a href="#Credentials">Credentials</a>,&nbsp;the&nbsp;credentials&nbsp;to&nbsp;store.</tt></dd></dl>
1081
Joe Gregorioa8451672011-09-15 09:53:21 -04001082<dl><dt><a name="Storage-put"><strong>put</strong></a>(self, credentials)</dt><dd><tt>Write&nbsp;a&nbsp;credential.<br>
1083&nbsp;<br>
1084The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
1085&nbsp;<br>
1086Args:<br>
1087&nbsp;&nbsp;credentials:&nbsp;<a href="#Credentials">Credentials</a>,&nbsp;the&nbsp;credentials&nbsp;to&nbsp;store.</tt></dd></dl>
1088
1089<dl><dt><a name="Storage-release_lock"><strong>release_lock</strong></a>(self)</dt><dd><tt>Release&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;lock.<br>
1090&nbsp;<br>
1091Trying&nbsp;to&nbsp;release&nbsp;a&nbsp;lock&nbsp;that&nbsp;isn't&nbsp;held&nbsp;will&nbsp;result&nbsp;in&nbsp;a<br>
1092RuntimeError.</tt></dd></dl>
1093
Joe Gregorio3b79fa82011-02-17 11:47:17 -05001094<hr>
1095Data descriptors defined here:<br>
1096<dl><dt><strong>__dict__</strong></dt>
1097<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
1098</dl>
1099<dl><dt><strong>__weakref__</strong></dt>
1100<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
1101</dl>
Joe Gregorio761c4562011-10-28 14:36:24 -04001102</td></tr></table> <p>
1103<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
1104<tr bgcolor="#ffc8d8">
1105<td colspan=3 valign=bottom>&nbsp;<br>
1106<font color="#000000" face="helvetica, arial"><a name="UnknownClientSecretsFlowError">class <strong>UnknownClientSecretsFlowError</strong></a>(<a href="oauth2client.client.html#Error">Error</a>)</font></td></tr>
1107
1108<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
1109<td colspan=2><tt>The&nbsp;client&nbsp;secrets&nbsp;file&nbsp;called&nbsp;for&nbsp;an&nbsp;unknown&nbsp;type&nbsp;of&nbsp;OAuth&nbsp;2.0&nbsp;flow.<br>&nbsp;</tt></td></tr>
1110<tr><td>&nbsp;</td>
1111<td width="100%"><dl><dt>Method resolution order:</dt>
1112<dd><a href="oauth2client.client.html#UnknownClientSecretsFlowError">UnknownClientSecretsFlowError</a></dd>
1113<dd><a href="oauth2client.client.html#Error">Error</a></dd>
1114<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
1115<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
1116<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
1117</dl>
1118<hr>
1119Data descriptors inherited from <a href="oauth2client.client.html#Error">Error</a>:<br>
1120<dl><dt><strong>__weakref__</strong></dt>
1121<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
1122</dl>
1123<hr>
1124Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -05001125<dl><dt><a name="UnknownClientSecretsFlowError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregorio761c4562011-10-28 14:36:24 -04001126
1127<hr>
1128Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
1129<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#UnknownClientSecretsFlowError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
1130
1131<hr>
1132Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
1133<dl><dt><a name="UnknownClientSecretsFlowError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
1134
1135<dl><dt><a name="UnknownClientSecretsFlowError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
1136
1137<dl><dt><a name="UnknownClientSecretsFlowError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
1138
1139<dl><dt><a name="UnknownClientSecretsFlowError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
1140&nbsp;<br>
1141Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
1142
1143<dl><dt><a name="UnknownClientSecretsFlowError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
1144
1145<dl><dt><a name="UnknownClientSecretsFlowError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
1146
1147<dl><dt><a name="UnknownClientSecretsFlowError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
1148
1149<dl><dt><a name="UnknownClientSecretsFlowError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
1150
1151<dl><dt><a name="UnknownClientSecretsFlowError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#UnknownClientSecretsFlowError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
1152
1153<dl><dt><a name="UnknownClientSecretsFlowError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
1154
1155<hr>
1156Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
1157<dl><dt><strong>__dict__</strong></dt>
1158</dl>
1159<dl><dt><strong>args</strong></dt>
1160</dl>
1161<dl><dt><strong>message</strong></dt>
1162</dl>
Joe Gregoriob417caf2011-12-08 12:04:24 -05001163</td></tr></table> <p>
1164<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
1165<tr bgcolor="#ffc8d8">
1166<td colspan=3 valign=bottom>&nbsp;<br>
1167<font color="#000000" face="helvetica, arial"><a name="VerifyJwtTokenError">class <strong>VerifyJwtTokenError</strong></a>(<a href="oauth2client.client.html#Error">Error</a>)</font></td></tr>
1168
1169<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
1170<td colspan=2><tt>Could&nbsp;on&nbsp;retrieve&nbsp;certificates&nbsp;for&nbsp;validation.<br>&nbsp;</tt></td></tr>
1171<tr><td>&nbsp;</td>
1172<td width="100%"><dl><dt>Method resolution order:</dt>
1173<dd><a href="oauth2client.client.html#VerifyJwtTokenError">VerifyJwtTokenError</a></dd>
1174<dd><a href="oauth2client.client.html#Error">Error</a></dd>
1175<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
1176<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
1177<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
1178</dl>
1179<hr>
1180Data descriptors inherited from <a href="oauth2client.client.html#Error">Error</a>:<br>
1181<dl><dt><strong>__weakref__</strong></dt>
1182<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
1183</dl>
1184<hr>
1185Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
1186<dl><dt><a name="VerifyJwtTokenError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
1187
1188<hr>
1189Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
1190<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#VerifyJwtTokenError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
1191
1192<hr>
1193Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
1194<dl><dt><a name="VerifyJwtTokenError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
1195
1196<dl><dt><a name="VerifyJwtTokenError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
1197
1198<dl><dt><a name="VerifyJwtTokenError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
1199
1200<dl><dt><a name="VerifyJwtTokenError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
1201&nbsp;<br>
1202Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
1203
1204<dl><dt><a name="VerifyJwtTokenError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
1205
1206<dl><dt><a name="VerifyJwtTokenError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
1207
1208<dl><dt><a name="VerifyJwtTokenError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
1209
1210<dl><dt><a name="VerifyJwtTokenError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
1211
1212<dl><dt><a name="VerifyJwtTokenError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#VerifyJwtTokenError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
1213
1214<dl><dt><a name="VerifyJwtTokenError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
1215
1216<hr>
1217Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
1218<dl><dt><strong>__dict__</strong></dt>
1219</dl>
1220<dl><dt><strong>args</strong></dt>
1221</dl>
1222<dl><dt><strong>message</strong></dt>
1223</dl>
Joe Gregorio6e537032011-02-09 23:04:26 -05001224</td></tr></table></td></tr></table><p>
1225<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
Joe Gregorio761c4562011-10-28 14:36:24 -04001226<tr bgcolor="#eeaa77">
1227<td colspan=3 valign=bottom>&nbsp;<br>
1228<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
1229
1230<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
1231<td width="100%"><dl><dt><a name="-flow_from_clientsecrets"><strong>flow_from_clientsecrets</strong></a>(filename, scope, message<font color="#909090">=None</font>)</dt><dd><tt>Create&nbsp;a&nbsp;<a href="#Flow">Flow</a>&nbsp;from&nbsp;a&nbsp;clientsecrets&nbsp;file.<br>
1232&nbsp;<br>
1233Will&nbsp;create&nbsp;the&nbsp;right&nbsp;kind&nbsp;of&nbsp;<a href="#Flow">Flow</a>&nbsp;based&nbsp;on&nbsp;the&nbsp;contents&nbsp;of&nbsp;the&nbsp;clientsecrets<br>
1234file&nbsp;or&nbsp;will&nbsp;raise&nbsp;InvalidClientSecretsError&nbsp;for&nbsp;unknown&nbsp;types&nbsp;of&nbsp;Flows.<br>
1235&nbsp;<br>
1236Args:<br>
1237&nbsp;&nbsp;filename:&nbsp;string,&nbsp;File&nbsp;name&nbsp;of&nbsp;client&nbsp;secrets.<br>
1238&nbsp;&nbsp;scope:&nbsp;string&nbsp;or&nbsp;list&nbsp;of&nbsp;strings,&nbsp;scope(s)&nbsp;to&nbsp;request.<br>
1239&nbsp;&nbsp;message:&nbsp;string,&nbsp;A&nbsp;friendly&nbsp;string&nbsp;to&nbsp;display&nbsp;to&nbsp;the&nbsp;user&nbsp;if&nbsp;the<br>
1240&nbsp;&nbsp;&nbsp;&nbsp;clientsecrets&nbsp;file&nbsp;is&nbsp;missing&nbsp;or&nbsp;invalid.&nbsp;If&nbsp;message&nbsp;is&nbsp;provided&nbsp;then<br>
1241&nbsp;&nbsp;&nbsp;&nbsp;sys.exit&nbsp;will&nbsp;be&nbsp;called&nbsp;in&nbsp;the&nbsp;case&nbsp;of&nbsp;an&nbsp;error.&nbsp;If&nbsp;message&nbsp;in&nbsp;not<br>
1242&nbsp;&nbsp;&nbsp;&nbsp;provided&nbsp;then&nbsp;clientsecrets.InvalidClientSecretsError&nbsp;will&nbsp;be&nbsp;raised.<br>
1243&nbsp;<br>
1244Returns:<br>
1245&nbsp;&nbsp;A&nbsp;<a href="#Flow">Flow</a>&nbsp;<a href="__builtin__.html#object">object</a>.<br>
1246&nbsp;<br>
1247Raises:<br>
1248&nbsp;&nbsp;<a href="#UnknownClientSecretsFlowError">UnknownClientSecretsFlowError</a>&nbsp;if&nbsp;the&nbsp;file&nbsp;describes&nbsp;an&nbsp;unknown&nbsp;kind&nbsp;of&nbsp;<a href="#Flow">Flow</a>.<br>
1249&nbsp;&nbsp;clientsecrets.InvalidClientSecretsError&nbsp;if&nbsp;the&nbsp;clientsecrets&nbsp;file&nbsp;is<br>
1250&nbsp;&nbsp;&nbsp;&nbsp;invalid.</tt></dd></dl>
Joe Gregoriob417caf2011-12-08 12:04:24 -05001251 <dl><dt><a name="-verify_id_token"><strong>verify_id_token</strong></a>(id_token, audience, http<font color="#909090">=None</font>, cert_uri<font color="#909090">='https://www.googleapis.com/oauth2/v1/certs'</font>)</dt><dd><tt>Verifies&nbsp;a&nbsp;signed&nbsp;JWT&nbsp;id_token.<br>
1252&nbsp;<br>
1253Args:<br>
1254&nbsp;&nbsp;id_token:&nbsp;string,&nbsp;A&nbsp;Signed&nbsp;JWT.<br>
1255&nbsp;&nbsp;audience:&nbsp;string,&nbsp;The&nbsp;audience&nbsp;'aud'&nbsp;that&nbsp;the&nbsp;token&nbsp;should&nbsp;be&nbsp;for.<br>
1256&nbsp;&nbsp;http:&nbsp;httplib2.Http,&nbsp;instance&nbsp;to&nbsp;use&nbsp;to&nbsp;make&nbsp;the&nbsp;HTTP&nbsp;request.&nbsp;Callers<br>
1257&nbsp;&nbsp;&nbsp;&nbsp;should&nbsp;supply&nbsp;an&nbsp;instance&nbsp;that&nbsp;has&nbsp;caching&nbsp;enabled.<br>
1258&nbsp;&nbsp;cert_uri:&nbsp;string,&nbsp;URI&nbsp;of&nbsp;the&nbsp;certificates&nbsp;in&nbsp;JSON&nbsp;format&nbsp;to<br>
1259&nbsp;&nbsp;&nbsp;&nbsp;verify&nbsp;the&nbsp;JWT&nbsp;against.<br>
1260&nbsp;<br>
1261Returns:<br>
1262&nbsp;&nbsp;The&nbsp;deserialized&nbsp;JSON&nbsp;in&nbsp;the&nbsp;JWT.<br>
1263&nbsp;<br>
1264Raises:<br>
1265&nbsp;&nbsp;oauth2client.crypt.AppIdentityError&nbsp;if&nbsp;the&nbsp;JWT&nbsp;fails&nbsp;to&nbsp;verify.</tt></dd></dl>
Joe Gregorio761c4562011-10-28 14:36:24 -04001266</td></tr></table><p>
1267<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
Joe Gregorio6e537032011-02-09 23:04:26 -05001268<tr bgcolor="#55aa55">
1269<td colspan=3 valign=bottom>&nbsp;<br>
1270<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
1271
1272<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
Joe Gregorio3d55ac52012-02-21 10:11:19 -05001273<td width="100%"><strong>EXPIRY_FORMAT</strong> = '%Y-%m-%dT%H:%M:%SZ'<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -05001274<strong>HAS_OPENSSL</strong> = True<br>
1275<strong>ID_TOKEN_VERIFICATON_CERTS</strong> = 'https://www.googleapis.com/oauth2/v1/certs'<br>
Joe Gregorio3d55ac52012-02-21 10:11:19 -05001276<strong>OOB_CALLBACK_URN</strong> = 'urn:ietf:wg:oauth:2.0:oob'<br>
Joe Gregorioa8451672011-09-15 09:53:21 -04001277<strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'<br>
Joe Gregoriob417caf2011-12-08 12:04:24 -05001278<strong>logger</strong> = &lt;logging.Logger instance&gt;</td></tr></table><p>
Joe Gregorio6e537032011-02-09 23:04:26 -05001279<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
1280<tr bgcolor="#7799ee">
1281<td colspan=3 valign=bottom>&nbsp;<br>
1282<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
1283
1284<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
1285<td width="100%">jcgregorio@google.com&nbsp;(Joe&nbsp;Gregorio)</td></tr></table>
1286</body></html>