blob: 127ecbeb33c77328265fb1cc83ded8b56d245791 [file] [log] [blame]
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -04001<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6 <title>oauth2client.client</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12 alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
16 <tr valign="middle">
17
18 <!-- Tree link -->
19 <th>&nbsp;&nbsp;&nbsp;<a
20 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
21
22 <!-- Index link -->
23 <th>&nbsp;&nbsp;&nbsp;<a
24 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
25
26 <!-- Help link -->
27 <th>&nbsp;&nbsp;&nbsp;<a
28 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
29
30 <th class="navbar" width="100%"></th>
31 </tr>
32</table>
33<table width="100%" cellpadding="0" cellspacing="0">
34 <tr valign="top">
35 <td width="100%">
36 <span class="breadcrumbs">
37 <a href="oauth2client-module.html">Package&nbsp;oauth2client</a> ::
38 Module&nbsp;client
39 </span>
40 </td>
41 <td>
42 <table cellpadding="0" cellspacing="0">
43 <!-- hide/show private -->
44 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
45 onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
46 <tr><td align="right"><span class="options"
47 >[<a href="frames.html" target="_top">frames</a
48 >]&nbsp;|&nbsp;<a href="oauth2client.client-module.html"
49 target="_top">no&nbsp;frames</a>]</span></td></tr>
50 </table>
51 </td>
52 </tr>
53</table>
54<!-- ==================== MODULE DESCRIPTION ==================== -->
55<h1 class="epydoc">Module client</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html">source&nbsp;code</a></span></p>
56<pre class="literalblock">
57An OAuth 2.0 client.
58
59Tools for interacting with OAuth 2.0 protected resources.
60
61</pre>
62
63<hr />
64<div class="fields"> <p><strong>Author:</strong>
65 jcgregorio@google.com (Joe Gregorio)
66 </p>
67</div><!-- ==================== CLASSES ==================== -->
68<a name="section-Classes"></a>
69<table class="summary" border="1" cellpadding="3"
70 cellspacing="0" width="100%" bgcolor="white">
71<tr bgcolor="#70b0f0" class="table-header">
72 <td colspan="2" class="table-header">
73 <table border="0" cellpadding="0" cellspacing="0" width="100%">
74 <tr valign="top">
75 <td align="left"><span class="table-header">Classes</span></td>
76 <td align="right" valign="top"
77 ><span class="options">[<a href="#section-Classes"
78 class="privatelink" onclick="toggle_private();"
79 >hide private</a>]</span></td>
80 </tr>
81 </table>
82 </td>
83</tr>
84<tr>
85 <td width="15%" align="right" valign="top" class="summary">
86 <span class="summary-type">&nbsp;</span>
87 </td><td class="summary">
88 <a href="oauth2client.client.Error-class.html" class="summary-name">Error</a><br />
89 Base error for this module.
90 </td>
91 </tr>
92<tr>
93 <td width="15%" align="right" valign="top" class="summary">
94 <span class="summary-type">&nbsp;</span>
95 </td><td class="summary">
96 <a href="oauth2client.client.FlowExchangeError-class.html" class="summary-name">FlowExchangeError</a><br />
97 Error trying to exchange an authorization grant for an access token.
98 </td>
99 </tr>
100<tr>
101 <td width="15%" align="right" valign="top" class="summary">
102 <span class="summary-type">&nbsp;</span>
103 </td><td class="summary">
104 <a href="oauth2client.client.AccessTokenRefreshError-class.html" class="summary-name">AccessTokenRefreshError</a><br />
105 Error trying to refresh an expired access token.
106 </td>
107 </tr>
108<tr>
109 <td width="15%" align="right" valign="top" class="summary">
110 <span class="summary-type">&nbsp;</span>
111 </td><td class="summary">
112 <a href="oauth2client.client.UnknownClientSecretsFlowError-class.html" class="summary-name">UnknownClientSecretsFlowError</a><br />
113 The client secrets file called for an unknown type of OAuth 2.0 flow.
114 </td>
115 </tr>
116<tr>
117 <td width="15%" align="right" valign="top" class="summary">
118 <span class="summary-type">&nbsp;</span>
119 </td><td class="summary">
120 <a href="oauth2client.client.AccessTokenCredentialsError-class.html" class="summary-name">AccessTokenCredentialsError</a><br />
121 Having only the access_token means no refresh is possible.
122 </td>
123 </tr>
124<tr>
125 <td width="15%" align="right" valign="top" class="summary">
126 <span class="summary-type">&nbsp;</span>
127 </td><td class="summary">
128 <a href="oauth2client.client.VerifyJwtTokenError-class.html" class="summary-name">VerifyJwtTokenError</a><br />
129 Could on retrieve certificates for validation.
130 </td>
131 </tr>
132<tr>
133 <td width="15%" align="right" valign="top" class="summary">
134 <span class="summary-type">&nbsp;</span>
135 </td><td class="summary">
136 <a href="oauth2client.client.MemoryCache-class.html" class="summary-name">MemoryCache</a><br />
137 httplib2 Cache implementation which only caches locally.
138 </td>
139 </tr>
140<tr>
141 <td width="15%" align="right" valign="top" class="summary">
142 <span class="summary-type">&nbsp;</span>
143 </td><td class="summary">
144 <a href="oauth2client.client.Credentials-class.html" class="summary-name">Credentials</a><br />
145 Base class for all Credentials objects.
146 </td>
147 </tr>
148<tr>
149 <td width="15%" align="right" valign="top" class="summary">
150 <span class="summary-type">&nbsp;</span>
151 </td><td class="summary">
152 <a href="oauth2client.client.Flow-class.html" class="summary-name">Flow</a><br />
153 Base class for all Flow objects.
154 </td>
155 </tr>
156<tr>
157 <td width="15%" align="right" valign="top" class="summary">
158 <span class="summary-type">&nbsp;</span>
159 </td><td class="summary">
160 <a href="oauth2client.client.Storage-class.html" class="summary-name">Storage</a><br />
161 Base class for all Storage objects.
162 </td>
163 </tr>
164<tr>
165 <td width="15%" align="right" valign="top" class="summary">
166 <span class="summary-type">&nbsp;</span>
167 </td><td class="summary">
168 <a href="oauth2client.client.OAuth2Credentials-class.html" class="summary-name">OAuth2Credentials</a><br />
169 Credentials object for OAuth 2.0.
170 </td>
171 </tr>
172<tr>
173 <td width="15%" align="right" valign="top" class="summary">
174 <span class="summary-type">&nbsp;</span>
175 </td><td class="summary">
176 <a href="oauth2client.client.AccessTokenCredentials-class.html" class="summary-name">AccessTokenCredentials</a><br />
177 Credentials object for OAuth 2.0.
178 </td>
179 </tr>
180<tr>
181 <td width="15%" align="right" valign="top" class="summary">
182 <span class="summary-type">&nbsp;</span>
183 </td><td class="summary">
184 <a href="oauth2client.client.AssertionCredentials-class.html" class="summary-name">AssertionCredentials</a><br />
185 Abstract Credentials object used for OAuth 2.0 assertion grants.
186 </td>
187 </tr>
188<tr>
189 <td width="15%" align="right" valign="top" class="summary">
190 <span class="summary-type">&nbsp;</span>
191 </td><td class="summary">
192 <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html" class="summary-name">SignedJwtAssertionCredentials</a><br />
193 Credentials object used for OAuth 2.0 Signed JWT assertion grants.
194 </td>
195 </tr>
196<tr>
197 <td width="15%" align="right" valign="top" class="summary">
198 <span class="summary-type">&nbsp;</span>
199 </td><td class="summary">
200 <a href="oauth2client.client.OAuth2WebServerFlow-class.html" class="summary-name">OAuth2WebServerFlow</a><br />
201 Does the Web Server Flow for OAuth 2.0.
202 </td>
203 </tr>
204</table>
205<!-- ==================== FUNCTIONS ==================== -->
206<a name="section-Functions"></a>
207<table class="summary" border="1" cellpadding="3"
208 cellspacing="0" width="100%" bgcolor="white">
209<tr bgcolor="#70b0f0" class="table-header">
210 <td colspan="2" class="table-header">
211 <table border="0" cellpadding="0" cellspacing="0" width="100%">
212 <tr valign="top">
213 <td align="left"><span class="table-header">Functions</span></td>
214 <td align="right" valign="top"
215 ><span class="options">[<a href="#section-Functions"
216 class="privatelink" onclick="toggle_private();"
217 >hide private</a>]</span></td>
218 </tr>
219 </table>
220 </td>
221</tr>
222<tr class="private">
223 <td width="15%" align="right" valign="top" class="summary">
224 <span class="summary-type">&nbsp;</span>
225 </td><td class="summary">
226 <table width="100%" cellpadding="0" cellspacing="0" border="0">
227 <tr>
228 <td><span class="summary-sig"><a name="_abstract"></a><span class="summary-sig-name">_abstract</span>()</span></td>
229 <td align="right" valign="top">
230 <span class="codelink"><a href="oauth2client.client-pysrc.html#_abstract">source&nbsp;code</a></span>
231
232 </td>
233 </tr>
234 </table>
235
236 </td>
237 </tr>
238<tr>
239 <td width="15%" align="right" valign="top" class="summary">
240 <span class="summary-type">&nbsp;</span>
241 </td><td class="summary">
242 <table width="100%" cellpadding="0" cellspacing="0" border="0">
243 <tr>
244 <td><span class="summary-sig"><a href="oauth2client.client-module.html#verify_id_token" class="summary-sig-name">verify_id_token</a>(<span class="summary-sig-arg">id_token</span>,
245 <span class="summary-sig-arg">audience</span>,
246 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
247 <span class="summary-sig-arg">cert_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth2/v1/certs</code><code class="variable-quote">'</code></span>)</span><br />
248 Verifies a signed JWT id_token.</td>
249 <td align="right" valign="top">
250 <span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>
251
252 </td>
253 </tr>
254 </table>
255
256 </td>
257 </tr>
258<tr class="private">
259 <td width="15%" align="right" valign="top" class="summary">
260 <span class="summary-type">&nbsp;</span>
261 </td><td class="summary">
262 <table width="100%" cellpadding="0" cellspacing="0" border="0">
263 <tr>
264 <td><span class="summary-sig"><a name="_urlsafe_b64decode"></a><span class="summary-sig-name">_urlsafe_b64decode</span>(<span class="summary-sig-arg">b64string</span>)</span></td>
265 <td align="right" valign="top">
266 <span class="codelink"><a href="oauth2client.client-pysrc.html#_urlsafe_b64decode">source&nbsp;code</a></span>
267
268 </td>
269 </tr>
270 </table>
271
272 </td>
273 </tr>
274<tr class="private">
275 <td width="15%" align="right" valign="top" class="summary">
276 <span class="summary-type">&nbsp;</span>
277 </td><td class="summary">
278 <table width="100%" cellpadding="0" cellspacing="0" border="0">
279 <tr>
280 <td><span class="summary-sig"><a href="oauth2client.client-module.html#_extract_id_token" class="summary-sig-name" onclick="show_private();">_extract_id_token</a>(<span class="summary-sig-arg">id_token</span>)</span><br />
281 Extract the JSON payload from a JWT.</td>
282 <td align="right" valign="top">
283 <span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>
284
285 </td>
286 </tr>
287 </table>
288
289 </td>
290 </tr>
291<tr>
292 <td width="15%" align="right" valign="top" class="summary">
293 <span class="summary-type">&nbsp;</span>
294 </td><td class="summary">
295 <table width="100%" cellpadding="0" cellspacing="0" border="0">
296 <tr>
Joe Gregorio66212032012-06-14 09:10:14 -0400297 <td><span class="summary-sig"><a href="oauth2client.client-module.html#credentials_from_code" class="summary-sig-name">credentials_from_code</a>(<span class="summary-sig-arg">client_id</span>,
298 <span class="summary-sig-arg">client_secret</span>,
299 <span class="summary-sig-arg">scope</span>,
300 <span class="summary-sig-arg">code</span>,
301 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
302 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
303 <span class="summary-sig-arg">user_agent</span>=<span class="summary-sig-default">None</span>,
304 <span class="summary-sig-arg">token_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">https://accounts.google.com/o/oauth2/token</code><code class="variable-quote">'</code></span>)</span><br />
305 Exchanges an authorization code for an OAuth2Credentials object.</td>
306 <td align="right" valign="top">
307 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>
308
309 </td>
310 </tr>
311 </table>
312
313 </td>
314 </tr>
315<tr>
316 <td width="15%" align="right" valign="top" class="summary">
317 <span class="summary-type">&nbsp;</span>
318 </td><td class="summary">
319 <table width="100%" cellpadding="0" cellspacing="0" border="0">
320 <tr>
321 <td><span class="summary-sig"><a href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code" class="summary-sig-name">credentials_from_clientsecrets_and_code</a>(<span class="summary-sig-arg">filename</span>,
322 <span class="summary-sig-arg">scope</span>,
323 <span class="summary-sig-arg">code</span>,
324 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
325 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
326 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>)</span><br />
327 Returns OAuth2Credentials from a clientsecrets file and an auth code.</td>
328 <td align="right" valign="top">
329 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>
330
331 </td>
332 </tr>
333 </table>
334
335 </td>
336 </tr>
337<tr>
338 <td width="15%" align="right" valign="top" class="summary">
339 <span class="summary-type">&nbsp;</span>
340 </td><td class="summary">
341 <table width="100%" cellpadding="0" cellspacing="0" border="0">
342 <tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400343 <td><span class="summary-sig"><a href="oauth2client.client-module.html#flow_from_clientsecrets" class="summary-sig-name">flow_from_clientsecrets</a>(<span class="summary-sig-arg">filename</span>,
344 <span class="summary-sig-arg">scope</span>,
345 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>)</span><br />
346 Create a Flow from a clientsecrets file.</td>
347 <td align="right" valign="top">
348 <span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>
349
350 </td>
351 </tr>
352 </table>
353
354 </td>
355 </tr>
356</table>
357<!-- ==================== VARIABLES ==================== -->
358<a name="section-Variables"></a>
359<table class="summary" border="1" cellpadding="3"
360 cellspacing="0" width="100%" bgcolor="white">
361<tr bgcolor="#70b0f0" class="table-header">
362 <td colspan="2" class="table-header">
363 <table border="0" cellpadding="0" cellspacing="0" width="100%">
364 <tr valign="top">
365 <td align="left"><span class="table-header">Variables</span></td>
366 <td align="right" valign="top"
367 ><span class="options">[<a href="#section-Variables"
368 class="privatelink" onclick="toggle_private();"
369 >hide private</a>]</span></td>
370 </tr>
371 </table>
372 </td>
373</tr>
374<tr>
375 <td width="15%" align="right" valign="top" class="summary">
376 <span class="summary-type">&nbsp;</span>
377 </td><td class="summary">
378 <a name="HAS_OPENSSL"></a><span class="summary-name">HAS_OPENSSL</span> = <code title="True">True</code>
379 </td>
380 </tr>
381<tr>
382 <td width="15%" align="right" valign="top" class="summary">
383 <span class="summary-type">&nbsp;</span>
384 </td><td class="summary">
385 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
386 </td>
387 </tr>
388<tr>
389 <td width="15%" align="right" valign="top" class="summary">
390 <span class="summary-type">&nbsp;</span>
391 </td><td class="summary">
392 <a name="EXPIRY_FORMAT"></a><span class="summary-name">EXPIRY_FORMAT</span> = <code title="'%Y-%m-%dT%H:%M:%SZ'"><code class="variable-quote">'</code><code class="variable-string">%Y-%m-%dT%H:%M:%SZ</code><code class="variable-quote">'</code></code>
393 </td>
394 </tr>
395<tr>
396 <td width="15%" align="right" valign="top" class="summary">
397 <span class="summary-type">&nbsp;</span>
398 </td><td class="summary">
399 <a href="oauth2client.client-module.html#ID_TOKEN_VERIFICATON_CERTS" class="summary-name">ID_TOKEN_VERIFICATON_CERTS</a> = <code title="'https://www.googleapis.com/oauth2/v1/certs'"><code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth</code><code class="variable-ellipsis">...</code></code>
400 </td>
401 </tr>
402<tr>
403 <td width="15%" align="right" valign="top" class="summary">
404 <span class="summary-type">&nbsp;</span>
405 </td><td class="summary">
406 <a name="OOB_CALLBACK_URN"></a><span class="summary-name">OOB_CALLBACK_URN</span> = <code title="'urn:ietf:wg:oauth:2.0:oob'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:wg:oauth:2.0:oob</code><code class="variable-quote">'</code></code>
407 </td>
408 </tr>
409<tr class="private">
410 <td width="15%" align="right" valign="top" class="summary">
411 <span class="summary-type">&nbsp;</span>
412 </td><td class="summary">
413 <a name="_cached_http"></a><span class="summary-name">_cached_http</span> = <code title="httplib2.Http(MemoryCache())">httplib2.Http(MemoryCache())</code>
414 </td>
415 </tr>
416<tr>
417 <td width="15%" align="right" valign="top" class="summary">
418 <span class="summary-type">&nbsp;</span>
419 </td><td class="summary">
420 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'oauth2client'"><code class="variable-quote">'</code><code class="variable-string">oauth2client</code><code class="variable-quote">'</code></code>
421 </td>
422 </tr>
423</table>
424<!-- ==================== FUNCTION DETAILS ==================== -->
425<a name="section-FunctionDetails"></a>
426<table class="details" border="1" cellpadding="3"
427 cellspacing="0" width="100%" bgcolor="white">
428<tr bgcolor="#70b0f0" class="table-header">
429 <td colspan="2" class="table-header">
430 <table border="0" cellpadding="0" cellspacing="0" width="100%">
431 <tr valign="top">
432 <td align="left"><span class="table-header">Function Details</span></td>
433 <td align="right" valign="top"
434 ><span class="options">[<a href="#section-FunctionDetails"
435 class="privatelink" onclick="toggle_private();"
436 >hide private</a>]</span></td>
437 </tr>
438 </table>
439 </td>
440</tr>
441</table>
442<a name="verify_id_token"></a>
443<div>
444<table class="details" border="1" cellpadding="3"
445 cellspacing="0" width="100%" bgcolor="white">
446<tr><td>
447 <table width="100%" cellpadding="0" cellspacing="0" border="0">
448 <tr valign="top"><td>
449 <h3 class="epydoc"><span class="sig"><span class="sig-name">verify_id_token</span>(<span class="sig-arg">id_token</span>,
450 <span class="sig-arg">audience</span>,
451 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
452 <span class="sig-arg">cert_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth2/v1/certs</code><code class="variable-quote">'</code></span>)</span>
453 </h3>
454 </td><td align="right" valign="top"
455 ><span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>&nbsp;
456 </td>
457 </tr></table>
458
459 <pre class="literalblock">
460Verifies a signed JWT id_token.
461
Joe Gregorio672051e2012-07-10 09:11:45 -0400462This function requires PyOpenSSL and because of that it does not work on
463App Engine. For App Engine you may consider using AppAssertionCredentials.
464
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400465Args:
466 id_token: string, A Signed JWT.
467 audience: string, The audience 'aud' that the token should be for.
468 http: httplib2.Http, instance to use to make the HTTP request. Callers
469 should supply an instance that has caching enabled.
470 cert_uri: string, URI of the certificates in JSON format to
471 verify the JWT against.
472
473Returns:
474 The deserialized JSON in the JWT.
475
476Raises:
477 oauth2client.crypt.AppIdentityError if the JWT fails to verify.
478
479</pre>
480 <dl class="fields">
481 </dl>
482</td></tr></table>
483</div>
484<a name="_extract_id_token"></a>
485<div class="private">
486<table class="details" border="1" cellpadding="3"
487 cellspacing="0" width="100%" bgcolor="white">
488<tr><td>
489 <table width="100%" cellpadding="0" cellspacing="0" border="0">
490 <tr valign="top"><td>
491 <h3 class="epydoc"><span class="sig"><span class="sig-name">_extract_id_token</span>(<span class="sig-arg">id_token</span>)</span>
492 </h3>
493 </td><td align="right" valign="top"
494 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>&nbsp;
495 </td>
496 </tr></table>
497
498 <pre class="literalblock">
499Extract the JSON payload from a JWT.
500
501Does the extraction w/o checking the signature.
502
503Args:
504 id_token: string, OAuth 2.0 id_token.
505
506Returns:
507 object, The deserialized JSON payload.
508
509</pre>
510 <dl class="fields">
511 </dl>
512</td></tr></table>
513</div>
Joe Gregorio66212032012-06-14 09:10:14 -0400514<a name="credentials_from_code"></a>
515<div>
516<table class="details" border="1" cellpadding="3"
517 cellspacing="0" width="100%" bgcolor="white">
518<tr><td>
519 <table width="100%" cellpadding="0" cellspacing="0" border="0">
520 <tr valign="top"><td>
521 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_code</span>(<span class="sig-arg">client_id</span>,
522 <span class="sig-arg">client_secret</span>,
523 <span class="sig-arg">scope</span>,
524 <span class="sig-arg">code</span>,
525 <span class="sig-arg">redirect_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
526 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
527 <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
528 <span class="sig-arg">token_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">https://accounts.google.com/o/oauth2/token</code><code class="variable-quote">'</code></span>)</span>
529 </h3>
530 </td><td align="right" valign="top"
531 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>&nbsp;
532 </td>
533 </tr></table>
534
535 <pre class="literalblock">
536Exchanges an authorization code for an OAuth2Credentials object.
537
538Args:
539 client_id: string, client identifier.
540 client_secret: string, client secret.
541 scope: string or list of strings, scope(s) to request.
542 code: string, An authroization code, most likely passed down from
543 the client
544 redirect_uri: string, this is generally set to 'postmessage' to match the
545 redirect_uri that the client specified
546 http: httplib2.Http, optional http instance to use to do the fetch
547 token_uri: string, URI for token endpoint. For convenience
548 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
549Returns:
550 An OAuth2Credentials object.
551
552Raises:
553 FlowExchangeError if the authorization code cannot be exchanged for an
554 access token
555
556</pre>
557 <dl class="fields">
558 </dl>
559</td></tr></table>
560</div>
561<a name="credentials_from_clientsecrets_and_code"></a>
562<div>
563<table class="details" border="1" cellpadding="3"
564 cellspacing="0" width="100%" bgcolor="white">
565<tr><td>
566 <table width="100%" cellpadding="0" cellspacing="0" border="0">
567 <tr valign="top"><td>
568 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_clientsecrets_and_code</span>(<span class="sig-arg">filename</span>,
569 <span class="sig-arg">scope</span>,
570 <span class="sig-arg">code</span>,
571 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
572 <span class="sig-arg">redirect_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
573 <span class="sig-arg">http</span>=<span class="sig-default">None</span>)</span>
574 </h3>
575 </td><td align="right" valign="top"
576 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>&nbsp;
577 </td>
578 </tr></table>
579
580 <pre class="literalblock">
581Returns OAuth2Credentials from a clientsecrets file and an auth code.
582
583Will create the right kind of Flow based on the contents of the clientsecrets
584file or will raise InvalidClientSecretsError for unknown types of Flows.
585
586Args:
587 filename: string, File name of clientsecrets.
588 scope: string or list of strings, scope(s) to request.
589 code: string, An authroization code, most likely passed down from
590 the client
591 message: string, A friendly string to display to the user if the
592 clientsecrets file is missing or invalid. If message is provided then
593 sys.exit will be called in the case of an error. If message in not
594 provided then clientsecrets.InvalidClientSecretsError will be raised.
595 redirect_uri: string, this is generally set to 'postmessage' to match the
596 redirect_uri that the client specified
597 http: httplib2.Http, optional http instance to use to do the fetch
598
599Returns:
600 An OAuth2Credentials object.
601
602Raises:
603 FlowExchangeError if the authorization code cannot be exchanged for an
604 access token
605 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
606 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
607 invalid.
608
609</pre>
610 <dl class="fields">
611 </dl>
612</td></tr></table>
613</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400614<a name="flow_from_clientsecrets"></a>
615<div>
616<table class="details" border="1" cellpadding="3"
617 cellspacing="0" width="100%" bgcolor="white">
618<tr><td>
619 <table width="100%" cellpadding="0" cellspacing="0" border="0">
620 <tr valign="top"><td>
621 <h3 class="epydoc"><span class="sig"><span class="sig-name">flow_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
622 <span class="sig-arg">scope</span>,
623 <span class="sig-arg">message</span>=<span class="sig-default">None</span>)</span>
624 </h3>
625 </td><td align="right" valign="top"
626 ><span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
627 </td>
628 </tr></table>
629
630 <pre class="literalblock">
631Create a Flow from a clientsecrets file.
632
633Will create the right kind of Flow based on the contents of the clientsecrets
634file or will raise InvalidClientSecretsError for unknown types of Flows.
635
636Args:
637 filename: string, File name of client secrets.
638 scope: string or list of strings, scope(s) to request.
639 message: string, A friendly string to display to the user if the
640 clientsecrets file is missing or invalid. If message is provided then
641 sys.exit will be called in the case of an error. If message in not
642 provided then clientsecrets.InvalidClientSecretsError will be raised.
643
644Returns:
645 A Flow object.
646
647Raises:
648 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
649 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
650 invalid.
651
652</pre>
653 <dl class="fields">
654 </dl>
655</td></tr></table>
656</div>
657<br />
658<!-- ==================== VARIABLES DETAILS ==================== -->
659<a name="section-VariablesDetails"></a>
660<table class="details" border="1" cellpadding="3"
661 cellspacing="0" width="100%" bgcolor="white">
662<tr bgcolor="#70b0f0" class="table-header">
663 <td colspan="2" class="table-header">
664 <table border="0" cellpadding="0" cellspacing="0" width="100%">
665 <tr valign="top">
666 <td align="left"><span class="table-header">Variables Details</span></td>
667 <td align="right" valign="top"
668 ><span class="options">[<a href="#section-VariablesDetails"
669 class="privatelink" onclick="toggle_private();"
670 >hide private</a>]</span></td>
671 </tr>
672 </table>
673 </td>
674</tr>
675</table>
676<a name="ID_TOKEN_VERIFICATON_CERTS"></a>
677<div>
678<table class="details" border="1" cellpadding="3"
679 cellspacing="0" width="100%" bgcolor="white">
680<tr><td>
681 <h3 class="epydoc">ID_TOKEN_VERIFICATON_CERTS</h3>
682
683 <dl class="fields">
684 </dl>
685 <dl class="fields">
686 <dt>Value:</dt>
687 <dd><table><tr><td><pre class="variable">
688<code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth2/v1/certs</code><code class="variable-quote">'</code>
689</pre></td></tr></table>
690</dd>
691 </dl>
692</td></tr></table>
693</div>
694<br />
695<!-- ==================== NAVIGATION BAR ==================== -->
696<table class="navbar" border="0" width="100%" cellpadding="0"
697 bgcolor="#a0c0ff" cellspacing="0">
698 <tr valign="middle">
699
700 <!-- Tree link -->
701 <th>&nbsp;&nbsp;&nbsp;<a
702 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
703
704 <!-- Index link -->
705 <th>&nbsp;&nbsp;&nbsp;<a
706 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
707
708 <!-- Help link -->
709 <th>&nbsp;&nbsp;&nbsp;<a
710 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
711
712 <th class="navbar" width="100%"></th>
713 </tr>
714</table>
715<table border="0" cellpadding="0" cellspacing="0" width="100%%">
716 <tr>
717 <td align="left" class="footer">
Joe Gregorio672051e2012-07-10 09:11:45 -0400718 Generated by Epydoc 3.0.1 on Tue Jul 10 07:59:16 2012
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400719 </td>
720 <td align="right" class="footer">
721 <a target="mainFrame" href="http://epydoc.sourceforge.net"
722 >http://epydoc.sourceforge.net</a>
723 </td>
724 </tr>
725</table>
726
727<script type="text/javascript">
728 <!--
729 // Private objects are initially displayed (because if
730 // javascript is turned off then we want them to be
731 // visible); but by default, we want to hide them. So hide
732 // them unless we have a cookie that says to show them.
733 checkCookie();
734 // -->
735</script>
736</body>
737</html>