blob: a20a4d66dffc670f224f5e33e9382d38d2d07c07 [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>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400291<tr class="private">
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>
297 <td><span class="summary-sig"><a href="oauth2client.client-module.html#_parse_exchange_token_response" class="summary-sig-name" onclick="show_private();">_parse_exchange_token_response</a>(<span class="summary-sig-arg">content</span>)</span><br />
298 Parses response of an exchange token request.</td>
299 <td align="right" valign="top">
300 <span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>
301
302 </td>
303 </tr>
304 </table>
305
306 </td>
307 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400308<tr>
309 <td width="15%" align="right" valign="top" class="summary">
310 <span class="summary-type">&nbsp;</span>
311 </td><td class="summary">
312 <table width="100%" cellpadding="0" cellspacing="0" border="0">
313 <tr>
Joe Gregorio66212032012-06-14 09:10:14 -0400314 <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>,
315 <span class="summary-sig-arg">client_secret</span>,
316 <span class="summary-sig-arg">scope</span>,
317 <span class="summary-sig-arg">code</span>,
318 <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>,
319 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
320 <span class="summary-sig-arg">user_agent</span>=<span class="summary-sig-default">None</span>,
321 <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 />
322 Exchanges an authorization code for an OAuth2Credentials object.</td>
323 <td align="right" valign="top">
324 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>
325
326 </td>
327 </tr>
328 </table>
329
330 </td>
331 </tr>
332<tr>
333 <td width="15%" align="right" valign="top" class="summary">
334 <span class="summary-type">&nbsp;</span>
335 </td><td class="summary">
336 <table width="100%" cellpadding="0" cellspacing="0" border="0">
337 <tr>
338 <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>,
339 <span class="summary-sig-arg">scope</span>,
340 <span class="summary-sig-arg">code</span>,
341 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
342 <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>,
343 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>)</span><br />
344 Returns OAuth2Credentials from a clientsecrets file and an auth code.</td>
345 <td align="right" valign="top">
346 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>
347
348 </td>
349 </tr>
350 </table>
351
352 </td>
353 </tr>
354<tr>
355 <td width="15%" align="right" valign="top" class="summary">
356 <span class="summary-type">&nbsp;</span>
357 </td><td class="summary">
358 <table width="100%" cellpadding="0" cellspacing="0" border="0">
359 <tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400360 <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>,
361 <span class="summary-sig-arg">scope</span>,
362 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>)</span><br />
363 Create a Flow from a clientsecrets file.</td>
364 <td align="right" valign="top">
365 <span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>
366
367 </td>
368 </tr>
369 </table>
370
371 </td>
372 </tr>
373</table>
374<!-- ==================== VARIABLES ==================== -->
375<a name="section-Variables"></a>
376<table class="summary" border="1" cellpadding="3"
377 cellspacing="0" width="100%" bgcolor="white">
378<tr bgcolor="#70b0f0" class="table-header">
379 <td colspan="2" class="table-header">
380 <table border="0" cellpadding="0" cellspacing="0" width="100%">
381 <tr valign="top">
382 <td align="left"><span class="table-header">Variables</span></td>
383 <td align="right" valign="top"
384 ><span class="options">[<a href="#section-Variables"
385 class="privatelink" onclick="toggle_private();"
386 >hide private</a>]</span></td>
387 </tr>
388 </table>
389 </td>
390</tr>
391<tr>
392 <td width="15%" align="right" valign="top" class="summary">
393 <span class="summary-type">&nbsp;</span>
394 </td><td class="summary">
395 <a name="HAS_OPENSSL"></a><span class="summary-name">HAS_OPENSSL</span> = <code title="True">True</code>
396 </td>
397 </tr>
398<tr>
399 <td width="15%" align="right" valign="top" class="summary">
400 <span class="summary-type">&nbsp;</span>
401 </td><td class="summary">
402 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
403 </td>
404 </tr>
405<tr>
406 <td width="15%" align="right" valign="top" class="summary">
407 <span class="summary-type">&nbsp;</span>
408 </td><td class="summary">
409 <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>
410 </td>
411 </tr>
412<tr>
413 <td width="15%" align="right" valign="top" class="summary">
414 <span class="summary-type">&nbsp;</span>
415 </td><td class="summary">
416 <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>
417 </td>
418 </tr>
419<tr>
420 <td width="15%" align="right" valign="top" class="summary">
421 <span class="summary-type">&nbsp;</span>
422 </td><td class="summary">
423 <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>
424 </td>
425 </tr>
426<tr class="private">
427 <td width="15%" align="right" valign="top" class="summary">
428 <span class="summary-type">&nbsp;</span>
429 </td><td class="summary">
430 <a name="_cached_http"></a><span class="summary-name">_cached_http</span> = <code title="httplib2.Http(MemoryCache())">httplib2.Http(MemoryCache())</code>
431 </td>
432 </tr>
433<tr>
434 <td width="15%" align="right" valign="top" class="summary">
435 <span class="summary-type">&nbsp;</span>
436 </td><td class="summary">
437 <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>
438 </td>
439 </tr>
440</table>
441<!-- ==================== FUNCTION DETAILS ==================== -->
442<a name="section-FunctionDetails"></a>
443<table class="details" border="1" cellpadding="3"
444 cellspacing="0" width="100%" bgcolor="white">
445<tr bgcolor="#70b0f0" class="table-header">
446 <td colspan="2" class="table-header">
447 <table border="0" cellpadding="0" cellspacing="0" width="100%">
448 <tr valign="top">
449 <td align="left"><span class="table-header">Function Details</span></td>
450 <td align="right" valign="top"
451 ><span class="options">[<a href="#section-FunctionDetails"
452 class="privatelink" onclick="toggle_private();"
453 >hide private</a>]</span></td>
454 </tr>
455 </table>
456 </td>
457</tr>
458</table>
459<a name="verify_id_token"></a>
460<div>
461<table class="details" border="1" cellpadding="3"
462 cellspacing="0" width="100%" bgcolor="white">
463<tr><td>
464 <table width="100%" cellpadding="0" cellspacing="0" border="0">
465 <tr valign="top"><td>
466 <h3 class="epydoc"><span class="sig"><span class="sig-name">verify_id_token</span>(<span class="sig-arg">id_token</span>,
467 <span class="sig-arg">audience</span>,
468 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
469 <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>
470 </h3>
471 </td><td align="right" valign="top"
472 ><span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>&nbsp;
473 </td>
474 </tr></table>
475
476 <pre class="literalblock">
477Verifies a signed JWT id_token.
478
Joe Gregorio672051e2012-07-10 09:11:45 -0400479This function requires PyOpenSSL and because of that it does not work on
480App Engine. For App Engine you may consider using AppAssertionCredentials.
481
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400482Args:
483 id_token: string, A Signed JWT.
484 audience: string, The audience 'aud' that the token should be for.
485 http: httplib2.Http, instance to use to make the HTTP request. Callers
486 should supply an instance that has caching enabled.
487 cert_uri: string, URI of the certificates in JSON format to
488 verify the JWT against.
489
490Returns:
491 The deserialized JSON in the JWT.
492
493Raises:
494 oauth2client.crypt.AppIdentityError if the JWT fails to verify.
495
496</pre>
497 <dl class="fields">
498 </dl>
499</td></tr></table>
500</div>
501<a name="_extract_id_token"></a>
502<div class="private">
503<table class="details" border="1" cellpadding="3"
504 cellspacing="0" width="100%" bgcolor="white">
505<tr><td>
506 <table width="100%" cellpadding="0" cellspacing="0" border="0">
507 <tr valign="top"><td>
508 <h3 class="epydoc"><span class="sig"><span class="sig-name">_extract_id_token</span>(<span class="sig-arg">id_token</span>)</span>
509 </h3>
510 </td><td align="right" valign="top"
511 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>&nbsp;
512 </td>
513 </tr></table>
514
515 <pre class="literalblock">
516Extract the JSON payload from a JWT.
517
518Does the extraction w/o checking the signature.
519
520Args:
521 id_token: string, OAuth 2.0 id_token.
522
523Returns:
524 object, The deserialized JSON payload.
525
526</pre>
527 <dl class="fields">
528 </dl>
529</td></tr></table>
530</div>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400531<a name="_parse_exchange_token_response"></a>
532<div class="private">
533<table class="details" border="1" cellpadding="3"
534 cellspacing="0" width="100%" bgcolor="white">
535<tr><td>
536 <table width="100%" cellpadding="0" cellspacing="0" border="0">
537 <tr valign="top"><td>
538 <h3 class="epydoc"><span class="sig"><span class="sig-name">_parse_exchange_token_response</span>(<span class="sig-arg">content</span>)</span>
539 </h3>
540 </td><td align="right" valign="top"
541 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>&nbsp;
542 </td>
543 </tr></table>
544
545 <pre class="literalblock">
546Parses response of an exchange token request.
547
548Most providers return JSON but some (e.g. Facebook) return a
549url-encoded string.
550
551Args:
552 content: The body of a response
553
554Returns:
555 Content as a dictionary object. Note that the dict could be empty,
556 i.e. {}. That basically indicates a failure.
557
558</pre>
559 <dl class="fields">
560 </dl>
561</td></tr></table>
562</div>
Joe Gregorio66212032012-06-14 09:10:14 -0400563<a name="credentials_from_code"></a>
564<div>
565<table class="details" border="1" cellpadding="3"
566 cellspacing="0" width="100%" bgcolor="white">
567<tr><td>
568 <table width="100%" cellpadding="0" cellspacing="0" border="0">
569 <tr valign="top"><td>
570 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_code</span>(<span class="sig-arg">client_id</span>,
571 <span class="sig-arg">client_secret</span>,
572 <span class="sig-arg">scope</span>,
573 <span class="sig-arg">code</span>,
574 <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>,
575 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
576 <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
577 <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>
578 </h3>
579 </td><td align="right" valign="top"
580 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>&nbsp;
581 </td>
582 </tr></table>
583
584 <pre class="literalblock">
585Exchanges an authorization code for an OAuth2Credentials object.
586
587Args:
588 client_id: string, client identifier.
589 client_secret: string, client secret.
590 scope: string or list of strings, scope(s) to request.
591 code: string, An authroization code, most likely passed down from
592 the client
593 redirect_uri: string, this is generally set to 'postmessage' to match the
594 redirect_uri that the client specified
595 http: httplib2.Http, optional http instance to use to do the fetch
596 token_uri: string, URI for token endpoint. For convenience
597 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
598Returns:
599 An OAuth2Credentials object.
600
601Raises:
602 FlowExchangeError if the authorization code cannot be exchanged for an
603 access token
604
605</pre>
606 <dl class="fields">
607 </dl>
608</td></tr></table>
609</div>
610<a name="credentials_from_clientsecrets_and_code"></a>
611<div>
612<table class="details" border="1" cellpadding="3"
613 cellspacing="0" width="100%" bgcolor="white">
614<tr><td>
615 <table width="100%" cellpadding="0" cellspacing="0" border="0">
616 <tr valign="top"><td>
617 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_clientsecrets_and_code</span>(<span class="sig-arg">filename</span>,
618 <span class="sig-arg">scope</span>,
619 <span class="sig-arg">code</span>,
620 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
621 <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>,
622 <span class="sig-arg">http</span>=<span class="sig-default">None</span>)</span>
623 </h3>
624 </td><td align="right" valign="top"
625 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>&nbsp;
626 </td>
627 </tr></table>
628
629 <pre class="literalblock">
630Returns OAuth2Credentials from a clientsecrets file and an auth code.
631
632Will create the right kind of Flow based on the contents of the clientsecrets
633file or will raise InvalidClientSecretsError for unknown types of Flows.
634
635Args:
636 filename: string, File name of clientsecrets.
637 scope: string or list of strings, scope(s) to request.
638 code: string, An authroization code, most likely passed down from
639 the client
640 message: string, A friendly string to display to the user if the
641 clientsecrets file is missing or invalid. If message is provided then
642 sys.exit will be called in the case of an error. If message in not
643 provided then clientsecrets.InvalidClientSecretsError will be raised.
644 redirect_uri: string, this is generally set to 'postmessage' to match the
645 redirect_uri that the client specified
646 http: httplib2.Http, optional http instance to use to do the fetch
647
648Returns:
649 An OAuth2Credentials object.
650
651Raises:
652 FlowExchangeError if the authorization code cannot be exchanged for an
653 access token
654 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
655 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
656 invalid.
657
658</pre>
659 <dl class="fields">
660 </dl>
661</td></tr></table>
662</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400663<a name="flow_from_clientsecrets"></a>
664<div>
665<table class="details" border="1" cellpadding="3"
666 cellspacing="0" width="100%" bgcolor="white">
667<tr><td>
668 <table width="100%" cellpadding="0" cellspacing="0" border="0">
669 <tr valign="top"><td>
670 <h3 class="epydoc"><span class="sig"><span class="sig-name">flow_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
671 <span class="sig-arg">scope</span>,
672 <span class="sig-arg">message</span>=<span class="sig-default">None</span>)</span>
673 </h3>
674 </td><td align="right" valign="top"
675 ><span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
676 </td>
677 </tr></table>
678
679 <pre class="literalblock">
680Create a Flow from a clientsecrets file.
681
682Will create the right kind of Flow based on the contents of the clientsecrets
683file or will raise InvalidClientSecretsError for unknown types of Flows.
684
685Args:
686 filename: string, File name of client secrets.
687 scope: string or list of strings, scope(s) to request.
688 message: string, A friendly string to display to the user if the
689 clientsecrets file is missing or invalid. If message is provided then
690 sys.exit will be called in the case of an error. If message in not
691 provided then clientsecrets.InvalidClientSecretsError will be raised.
692
693Returns:
694 A Flow object.
695
696Raises:
697 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
698 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
699 invalid.
700
701</pre>
702 <dl class="fields">
703 </dl>
704</td></tr></table>
705</div>
706<br />
707<!-- ==================== VARIABLES DETAILS ==================== -->
708<a name="section-VariablesDetails"></a>
709<table class="details" border="1" cellpadding="3"
710 cellspacing="0" width="100%" bgcolor="white">
711<tr bgcolor="#70b0f0" class="table-header">
712 <td colspan="2" class="table-header">
713 <table border="0" cellpadding="0" cellspacing="0" width="100%">
714 <tr valign="top">
715 <td align="left"><span class="table-header">Variables Details</span></td>
716 <td align="right" valign="top"
717 ><span class="options">[<a href="#section-VariablesDetails"
718 class="privatelink" onclick="toggle_private();"
719 >hide private</a>]</span></td>
720 </tr>
721 </table>
722 </td>
723</tr>
724</table>
725<a name="ID_TOKEN_VERIFICATON_CERTS"></a>
726<div>
727<table class="details" border="1" cellpadding="3"
728 cellspacing="0" width="100%" bgcolor="white">
729<tr><td>
730 <h3 class="epydoc">ID_TOKEN_VERIFICATON_CERTS</h3>
731
732 <dl class="fields">
733 </dl>
734 <dl class="fields">
735 <dt>Value:</dt>
736 <dd><table><tr><td><pre class="variable">
737<code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth2/v1/certs</code><code class="variable-quote">'</code>
738</pre></td></tr></table>
739</dd>
740 </dl>
741</td></tr></table>
742</div>
743<br />
744<!-- ==================== NAVIGATION BAR ==================== -->
745<table class="navbar" border="0" width="100%" cellpadding="0"
746 bgcolor="#a0c0ff" cellspacing="0">
747 <tr valign="middle">
748
749 <!-- Tree link -->
750 <th>&nbsp;&nbsp;&nbsp;<a
751 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
752
753 <!-- Index link -->
754 <th>&nbsp;&nbsp;&nbsp;<a
755 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
756
757 <!-- Help link -->
758 <th>&nbsp;&nbsp;&nbsp;<a
759 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
760
761 <th class="navbar" width="100%"></th>
762 </tr>
763</table>
764<table border="0" cellpadding="0" cellspacing="0" width="100%%">
765 <tr>
766 <td align="left" class="footer">
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400767 Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400768 </td>
769 <td align="right" class="footer">
770 <a target="mainFrame" href="http://epydoc.sourceforge.net"
771 >http://epydoc.sourceforge.net</a>
772 </td>
773 </tr>
774</table>
775
776<script type="text/javascript">
777 <!--
778 // Private objects are initially displayed (because if
779 // javascript is turned off then we want them to be
780 // visible); but by default, we want to hide them. So hide
781 // them unless we have a cookie that says to show them.
782 checkCookie();
783 // -->
784</script>
785</body>
786</html>