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