blob: e0aafca6a20465c8ade302fe8a65759f070961ab [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
462Args:
463 id_token: string, A Signed JWT.
464 audience: string, The audience 'aud' that the token should be for.
465 http: httplib2.Http, instance to use to make the HTTP request. Callers
466 should supply an instance that has caching enabled.
467 cert_uri: string, URI of the certificates in JSON format to
468 verify the JWT against.
469
470Returns:
471 The deserialized JSON in the JWT.
472
473Raises:
474 oauth2client.crypt.AppIdentityError if the JWT fails to verify.
475
476</pre>
477 <dl class="fields">
478 </dl>
479</td></tr></table>
480</div>
481<a name="_extract_id_token"></a>
482<div class="private">
483<table class="details" border="1" cellpadding="3"
484 cellspacing="0" width="100%" bgcolor="white">
485<tr><td>
486 <table width="100%" cellpadding="0" cellspacing="0" border="0">
487 <tr valign="top"><td>
488 <h3 class="epydoc"><span class="sig"><span class="sig-name">_extract_id_token</span>(<span class="sig-arg">id_token</span>)</span>
489 </h3>
490 </td><td align="right" valign="top"
491 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>&nbsp;
492 </td>
493 </tr></table>
494
495 <pre class="literalblock">
496Extract the JSON payload from a JWT.
497
498Does the extraction w/o checking the signature.
499
500Args:
501 id_token: string, OAuth 2.0 id_token.
502
503Returns:
504 object, The deserialized JSON payload.
505
506</pre>
507 <dl class="fields">
508 </dl>
509</td></tr></table>
510</div>
Joe Gregorio66212032012-06-14 09:10:14 -0400511<a name="credentials_from_code"></a>
512<div>
513<table class="details" border="1" cellpadding="3"
514 cellspacing="0" width="100%" bgcolor="white">
515<tr><td>
516 <table width="100%" cellpadding="0" cellspacing="0" border="0">
517 <tr valign="top"><td>
518 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_code</span>(<span class="sig-arg">client_id</span>,
519 <span class="sig-arg">client_secret</span>,
520 <span class="sig-arg">scope</span>,
521 <span class="sig-arg">code</span>,
522 <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>,
523 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
524 <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
525 <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>
526 </h3>
527 </td><td align="right" valign="top"
528 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>&nbsp;
529 </td>
530 </tr></table>
531
532 <pre class="literalblock">
533Exchanges an authorization code for an OAuth2Credentials object.
534
535Args:
536 client_id: string, client identifier.
537 client_secret: string, client secret.
538 scope: string or list of strings, scope(s) to request.
539 code: string, An authroization code, most likely passed down from
540 the client
541 redirect_uri: string, this is generally set to 'postmessage' to match the
542 redirect_uri that the client specified
543 http: httplib2.Http, optional http instance to use to do the fetch
544 token_uri: string, URI for token endpoint. For convenience
545 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
546Returns:
547 An OAuth2Credentials object.
548
549Raises:
550 FlowExchangeError if the authorization code cannot be exchanged for an
551 access token
552
553</pre>
554 <dl class="fields">
555 </dl>
556</td></tr></table>
557</div>
558<a name="credentials_from_clientsecrets_and_code"></a>
559<div>
560<table class="details" border="1" cellpadding="3"
561 cellspacing="0" width="100%" bgcolor="white">
562<tr><td>
563 <table width="100%" cellpadding="0" cellspacing="0" border="0">
564 <tr valign="top"><td>
565 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_clientsecrets_and_code</span>(<span class="sig-arg">filename</span>,
566 <span class="sig-arg">scope</span>,
567 <span class="sig-arg">code</span>,
568 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
569 <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>,
570 <span class="sig-arg">http</span>=<span class="sig-default">None</span>)</span>
571 </h3>
572 </td><td align="right" valign="top"
573 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>&nbsp;
574 </td>
575 </tr></table>
576
577 <pre class="literalblock">
578Returns OAuth2Credentials from a clientsecrets file and an auth code.
579
580Will create the right kind of Flow based on the contents of the clientsecrets
581file or will raise InvalidClientSecretsError for unknown types of Flows.
582
583Args:
584 filename: string, File name of clientsecrets.
585 scope: string or list of strings, scope(s) to request.
586 code: string, An authroization code, most likely passed down from
587 the client
588 message: string, A friendly string to display to the user if the
589 clientsecrets file is missing or invalid. If message is provided then
590 sys.exit will be called in the case of an error. If message in not
591 provided then clientsecrets.InvalidClientSecretsError will be raised.
592 redirect_uri: string, this is generally set to 'postmessage' to match the
593 redirect_uri that the client specified
594 http: httplib2.Http, optional http instance to use to do the fetch
595
596Returns:
597 An OAuth2Credentials object.
598
599Raises:
600 FlowExchangeError if the authorization code cannot be exchanged for an
601 access token
602 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
603 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
604 invalid.
605
606</pre>
607 <dl class="fields">
608 </dl>
609</td></tr></table>
610</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400611<a name="flow_from_clientsecrets"></a>
612<div>
613<table class="details" border="1" cellpadding="3"
614 cellspacing="0" width="100%" bgcolor="white">
615<tr><td>
616 <table width="100%" cellpadding="0" cellspacing="0" border="0">
617 <tr valign="top"><td>
618 <h3 class="epydoc"><span class="sig"><span class="sig-name">flow_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
619 <span class="sig-arg">scope</span>,
620 <span class="sig-arg">message</span>=<span class="sig-default">None</span>)</span>
621 </h3>
622 </td><td align="right" valign="top"
623 ><span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
624 </td>
625 </tr></table>
626
627 <pre class="literalblock">
628Create a Flow from a clientsecrets file.
629
630Will create the right kind of Flow based on the contents of the clientsecrets
631file or will raise InvalidClientSecretsError for unknown types of Flows.
632
633Args:
634 filename: string, File name of client secrets.
635 scope: string or list of strings, scope(s) to request.
636 message: string, A friendly string to display to the user if the
637 clientsecrets file is missing or invalid. If message is provided then
638 sys.exit will be called in the case of an error. If message in not
639 provided then clientsecrets.InvalidClientSecretsError will be raised.
640
641Returns:
642 A Flow object.
643
644Raises:
645 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
646 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
647 invalid.
648
649</pre>
650 <dl class="fields">
651 </dl>
652</td></tr></table>
653</div>
654<br />
655<!-- ==================== VARIABLES DETAILS ==================== -->
656<a name="section-VariablesDetails"></a>
657<table class="details" border="1" cellpadding="3"
658 cellspacing="0" width="100%" bgcolor="white">
659<tr bgcolor="#70b0f0" class="table-header">
660 <td colspan="2" class="table-header">
661 <table border="0" cellpadding="0" cellspacing="0" width="100%">
662 <tr valign="top">
663 <td align="left"><span class="table-header">Variables Details</span></td>
664 <td align="right" valign="top"
665 ><span class="options">[<a href="#section-VariablesDetails"
666 class="privatelink" onclick="toggle_private();"
667 >hide private</a>]</span></td>
668 </tr>
669 </table>
670 </td>
671</tr>
672</table>
673<a name="ID_TOKEN_VERIFICATON_CERTS"></a>
674<div>
675<table class="details" border="1" cellpadding="3"
676 cellspacing="0" width="100%" bgcolor="white">
677<tr><td>
678 <h3 class="epydoc">ID_TOKEN_VERIFICATON_CERTS</h3>
679
680 <dl class="fields">
681 </dl>
682 <dl class="fields">
683 <dt>Value:</dt>
684 <dd><table><tr><td><pre class="variable">
685<code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth2/v1/certs</code><code class="variable-quote">'</code>
686</pre></td></tr></table>
687</dd>
688 </dl>
689</td></tr></table>
690</div>
691<br />
692<!-- ==================== NAVIGATION BAR ==================== -->
693<table class="navbar" border="0" width="100%" cellpadding="0"
694 bgcolor="#a0c0ff" cellspacing="0">
695 <tr valign="middle">
696
697 <!-- Tree link -->
698 <th>&nbsp;&nbsp;&nbsp;<a
699 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
700
701 <!-- Index link -->
702 <th>&nbsp;&nbsp;&nbsp;<a
703 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
704
705 <!-- Help link -->
706 <th>&nbsp;&nbsp;&nbsp;<a
707 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
708
709 <th class="navbar" width="100%"></th>
710 </tr>
711</table>
712<table border="0" cellpadding="0" cellspacing="0" width="100%%">
713 <tr>
714 <td align="left" class="footer">
Joe Gregorio746096f2012-06-15 10:53:36 -0400715 Generated by Epydoc 3.0.1 on Fri Jun 15 09:51:49 2012
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400716 </td>
717 <td align="right" class="footer">
718 <a target="mainFrame" href="http://epydoc.sourceforge.net"
719 >http://epydoc.sourceforge.net</a>
720 </td>
721 </tr>
722</table>
723
724<script type="text/javascript">
725 <!--
726 // Private objects are initially displayed (because if
727 // javascript is turned off then we want them to be
728 // visible); but by default, we want to hide them. So hide
729 // them unless we have a cookie that says to show them.
730 checkCookie();
731 // -->
732</script>
733</body>
734</html>