blob: 4eee0aff1c2fc4340ac33d1c8094ebd2ee71de6c [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">
Joe Gregorio41be8e82013-03-07 10:31:47 -0500112 <a href="oauth2client.client.TokenRevokeError-class.html" class="summary-name">TokenRevokeError</a><br />
113 Error trying to revoke a token.
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">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400120 <a href="oauth2client.client.UnknownClientSecretsFlowError-class.html" class="summary-name">UnknownClientSecretsFlowError</a><br />
121 The client secrets file called for an unknown type of OAuth 2.0 flow.
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.AccessTokenCredentialsError-class.html" class="summary-name">AccessTokenCredentialsError</a><br />
129 Having only the access_token means no refresh is possible.
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.VerifyJwtTokenError-class.html" class="summary-name">VerifyJwtTokenError</a><br />
137 Could on retrieve certificates for validation.
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">
Joe Gregorio52a5c532013-01-24 16:19:07 -0500144 <a href="oauth2client.client.NonAsciiHeaderError-class.html" class="summary-name">NonAsciiHeaderError</a><br />
145 Header names and values must be ASCII strings.
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">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400152 <a href="oauth2client.client.MemoryCache-class.html" class="summary-name">MemoryCache</a><br />
153 httplib2 Cache implementation which only caches locally.
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.Credentials-class.html" class="summary-name">Credentials</a><br />
161 Base class for all Credentials 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.Flow-class.html" class="summary-name">Flow</a><br />
169 Base class for all Flow objects.
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.Storage-class.html" class="summary-name">Storage</a><br />
177 Base class for all Storage objects.
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.OAuth2Credentials-class.html" class="summary-name">OAuth2Credentials</a><br />
185 Credentials object for OAuth 2.0.
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.AccessTokenCredentials-class.html" class="summary-name">AccessTokenCredentials</a><br />
193 Credentials object for OAuth 2.0.
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.AssertionCredentials-class.html" class="summary-name">AssertionCredentials</a><br />
201 Abstract Credentials object used for OAuth 2.0 assertion grants.
202 </td>
203 </tr>
204<tr>
205 <td width="15%" align="right" valign="top" class="summary">
206 <span class="summary-type">&nbsp;</span>
207 </td><td class="summary">
208 <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html" class="summary-name">SignedJwtAssertionCredentials</a><br />
209 Credentials object used for OAuth 2.0 Signed JWT assertion grants.
210 </td>
211 </tr>
212<tr>
213 <td width="15%" align="right" valign="top" class="summary">
214 <span class="summary-type">&nbsp;</span>
215 </td><td class="summary">
216 <a href="oauth2client.client.OAuth2WebServerFlow-class.html" class="summary-name">OAuth2WebServerFlow</a><br />
217 Does the Web Server Flow for OAuth 2.0.
218 </td>
219 </tr>
220</table>
221<!-- ==================== FUNCTIONS ==================== -->
222<a name="section-Functions"></a>
223<table class="summary" border="1" cellpadding="3"
224 cellspacing="0" width="100%" bgcolor="white">
225<tr bgcolor="#70b0f0" class="table-header">
226 <td colspan="2" class="table-header">
227 <table border="0" cellpadding="0" cellspacing="0" width="100%">
228 <tr valign="top">
229 <td align="left"><span class="table-header">Functions</span></td>
230 <td align="right" valign="top"
231 ><span class="options">[<a href="#section-Functions"
232 class="privatelink" onclick="toggle_private();"
233 >hide private</a>]</span></td>
234 </tr>
235 </table>
236 </td>
237</tr>
238<tr class="private">
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 name="_abstract"></a><span class="summary-sig-name">_abstract</span>()</span></td>
245 <td align="right" valign="top">
246 <span class="codelink"><a href="oauth2client.client-pysrc.html#_abstract">source&nbsp;code</a></span>
247
248 </td>
249 </tr>
250 </table>
251
252 </td>
253 </tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400254<tr>
255 <td width="15%" align="right" valign="top" class="summary">
256 <span class="summary-type">&nbsp;</span>
257 </td><td class="summary">
258 <table width="100%" cellpadding="0" cellspacing="0" border="0">
259 <tr>
Joe Gregorio52a5c532013-01-24 16:19:07 -0500260 <td><span class="summary-sig"><a href="oauth2client.client-module.html#clean_headers" class="summary-sig-name">clean_headers</a>(<span class="summary-sig-arg">headers</span>)</span><br />
261 Forces header keys and values to be strings, i.e not unicode.</td>
262 <td align="right" valign="top">
263 <span class="codelink"><a href="oauth2client.client-pysrc.html#clean_headers">source&nbsp;code</a></span>
264
265 </td>
266 </tr>
267 </table>
268
269 </td>
270 </tr>
Joe Gregorio41be8e82013-03-07 10:31:47 -0500271<tr class="private">
272 <td width="15%" align="right" valign="top" class="summary">
273 <span class="summary-type">&nbsp;</span>
274 </td><td class="summary">
275 <table width="100%" cellpadding="0" cellspacing="0" border="0">
276 <tr>
277 <td><span class="summary-sig"><a href="oauth2client.client-module.html#_update_query_params" class="summary-sig-name" onclick="show_private();">_update_query_params</a>(<span class="summary-sig-arg">uri</span>,
278 <span class="summary-sig-arg">params</span>)</span><br />
279 Updates a URI with new query parameters.</td>
280 <td align="right" valign="top">
281 <span class="codelink"><a href="oauth2client.client-pysrc.html#_update_query_params">source&nbsp;code</a></span>
282
283 </td>
284 </tr>
285 </table>
286
287 </td>
288 </tr>
Joe Gregorio52a5c532013-01-24 16:19:07 -0500289<tr>
290 <td width="15%" align="right" valign="top" class="summary">
291 <span class="summary-type">&nbsp;</span>
292 </td><td class="summary">
293 <table width="100%" cellpadding="0" cellspacing="0" border="0">
294 <tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400295 <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>,
296 <span class="summary-sig-arg">audience</span>,
297 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
298 <span class="summary-sig-arg">cert_uri</span>=<span class="summary-sig-default">ID_TOKEN_VERIFICATON_CERTS</span>)</span><br />
299 Verifies a signed JWT id_token.</td>
300 <td align="right" valign="top">
301 <span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>
302
303 </td>
304 </tr>
305 </table>
306
307 </td>
308 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400309<tr class="private">
310 <td width="15%" align="right" valign="top" class="summary">
311 <span class="summary-type">&nbsp;</span>
312 </td><td class="summary">
313 <table width="100%" cellpadding="0" cellspacing="0" border="0">
314 <tr>
315 <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>
316 <td align="right" valign="top">
317 <span class="codelink"><a href="oauth2client.client-pysrc.html#_urlsafe_b64decode">source&nbsp;code</a></span>
318
319 </td>
320 </tr>
321 </table>
322
323 </td>
324 </tr>
325<tr class="private">
326 <td width="15%" align="right" valign="top" class="summary">
327 <span class="summary-type">&nbsp;</span>
328 </td><td class="summary">
329 <table width="100%" cellpadding="0" cellspacing="0" border="0">
330 <tr>
331 <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 />
332 Extract the JSON payload from a JWT.</td>
333 <td align="right" valign="top">
334 <span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>
335
336 </td>
337 </tr>
338 </table>
339
340 </td>
341 </tr>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400342<tr class="private">
343 <td width="15%" align="right" valign="top" class="summary">
344 <span class="summary-type">&nbsp;</span>
345 </td><td class="summary">
346 <table width="100%" cellpadding="0" cellspacing="0" border="0">
347 <tr>
348 <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 />
349 Parses response of an exchange token request.</td>
350 <td align="right" valign="top">
351 <span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>
352
353 </td>
354 </tr>
355 </table>
356
357 </td>
358 </tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400359<tr>
360 <td width="15%" align="right" valign="top" class="summary">
361 <span class="summary-type">&nbsp;</span>
362 </td><td class="summary">
363 <table width="100%" cellpadding="0" cellspacing="0" border="0">
364 <tr>
365 <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>,
366 <span class="summary-sig-arg">client_secret</span>,
367 <span class="summary-sig-arg">scope</span>,
368 <span class="summary-sig-arg">code</span>,
369 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default">'postmessage'</span>,
370 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
371 <span class="summary-sig-arg">user_agent</span>=<span class="summary-sig-default">None</span>,
Joe Gregorio41be8e82013-03-07 10:31:47 -0500372 <span class="summary-sig-arg">token_uri</span>=<span class="summary-sig-default">GOOGLE_TOKEN_URI</span>,
373 <span class="summary-sig-arg">auth_uri</span>=<span class="summary-sig-default">GOOGLE_AUTH_URI</span>,
374 <span class="summary-sig-arg">revoke_uri</span>=<span class="summary-sig-default">GOOGLE_REVOKE_URI</span>)</span><br />
Joe Gregoriof4839b02012-09-06 13:47:24 -0400375 Exchanges an authorization code for an OAuth2Credentials object.</td>
376 <td align="right" valign="top">
377 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>
378
379 </td>
380 </tr>
381 </table>
382
383 </td>
384 </tr>
385<tr>
386 <td width="15%" align="right" valign="top" class="summary">
387 <span class="summary-type">&nbsp;</span>
388 </td><td class="summary">
389 <table width="100%" cellpadding="0" cellspacing="0" border="0">
390 <tr>
391 <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>,
392 <span class="summary-sig-arg">scope</span>,
393 <span class="summary-sig-arg">code</span>,
394 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
395 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default">'postmessage'</span>,
396 <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
397 <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
398 Returns OAuth2Credentials from a clientsecrets file and an auth code.</td>
399 <td align="right" valign="top">
400 <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>
401
402 </td>
403 </tr>
404 </table>
405
406 </td>
407 </tr>
408<tr>
409 <td width="15%" align="right" valign="top" class="summary">
410 <span class="summary-type">&nbsp;</span>
411 </td><td class="summary">
412 <table width="100%" cellpadding="0" cellspacing="0" border="0">
413 <tr>
414 <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>,
415 <span class="summary-sig-arg">scope</span>,
416 <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default">None</span>,
417 <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
418 <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
419 Create a Flow from a clientsecrets file.</td>
420 <td align="right" valign="top">
421 <span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>
422
423 </td>
424 </tr>
425 </table>
426
427 </td>
428 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400429</table>
430<!-- ==================== VARIABLES ==================== -->
431<a name="section-Variables"></a>
432<table class="summary" border="1" cellpadding="3"
433 cellspacing="0" width="100%" bgcolor="white">
434<tr bgcolor="#70b0f0" class="table-header">
435 <td colspan="2" class="table-header">
436 <table border="0" cellpadding="0" cellspacing="0" width="100%">
437 <tr valign="top">
438 <td align="left"><span class="table-header">Variables</span></td>
439 <td align="right" valign="top"
440 ><span class="options">[<a href="#section-Variables"
441 class="privatelink" onclick="toggle_private();"
442 >hide private</a>]</span></td>
443 </tr>
444 </table>
445 </td>
446</tr>
447<tr>
448 <td width="15%" align="right" valign="top" class="summary">
449 <span class="summary-type">&nbsp;</span>
450 </td><td class="summary">
Joe Gregorio52a5c532013-01-24 16:19:07 -0500451 <a name="HAS_CRYPTO"></a><span class="summary-name">HAS_CRYPTO</span> = <code title="True">True</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400452 </td>
453 </tr>
454<tr>
455 <td width="15%" align="right" valign="top" class="summary">
456 <span class="summary-type">&nbsp;</span>
457 </td><td class="summary">
Joe Gregorio41be8e82013-03-07 10:31:47 -0500458 <a name="HAS_OPENSSL"></a><span class="summary-name">HAS_OPENSSL</span> = <code title="True">True</code>
459 </td>
460 </tr>
461<tr>
462 <td width="15%" align="right" valign="top" class="summary">
463 <span class="summary-type">&nbsp;</span>
464 </td><td class="summary">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400465 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
466 </td>
467 </tr>
468<tr>
469 <td width="15%" align="right" valign="top" class="summary">
470 <span class="summary-type">&nbsp;</span>
471 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400472 <a name="EXPIRY_FORMAT"></a><span class="summary-name">EXPIRY_FORMAT</span> = <code title="'%Y-%m-%dT%H:%M:%SZ'">'%Y-%m-%dT%H:%M:%SZ'</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400473 </td>
474 </tr>
475<tr>
476 <td width="15%" align="right" valign="top" class="summary">
477 <span class="summary-type">&nbsp;</span>
478 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400479 <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'">'https://www.googleapis.com/oauth<code class="variable-ellipsis">...</code></code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400480 </td>
481 </tr>
482<tr>
483 <td width="15%" align="right" valign="top" class="summary">
484 <span class="summary-type">&nbsp;</span>
485 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400486 <a name="OOB_CALLBACK_URN"></a><span class="summary-name">OOB_CALLBACK_URN</span> = <code title="'urn:ietf:wg:oauth:2.0:oob'">'urn:ietf:wg:oauth:2.0:oob'</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400487 </td>
488 </tr>
Joe Gregorio52a5c532013-01-24 16:19:07 -0500489<tr>
490 <td width="15%" align="right" valign="top" class="summary">
491 <span class="summary-type">&nbsp;</span>
492 </td><td class="summary">
493 <a name="REFRESH_STATUS_CODES"></a><span class="summary-name">REFRESH_STATUS_CODES</span> = <code title="[401]">[401]</code>
494 </td>
495 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400496<tr class="private">
497 <td width="15%" align="right" valign="top" class="summary">
498 <span class="summary-type">&nbsp;</span>
499 </td><td class="summary">
500 <a name="_cached_http"></a><span class="summary-name">_cached_http</span> = <code title="httplib2.Http(MemoryCache())">httplib2.Http(MemoryCache())</code>
501 </td>
502 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400503</table>
504<!-- ==================== FUNCTION DETAILS ==================== -->
505<a name="section-FunctionDetails"></a>
506<table class="details" border="1" cellpadding="3"
507 cellspacing="0" width="100%" bgcolor="white">
508<tr bgcolor="#70b0f0" class="table-header">
509 <td colspan="2" class="table-header">
510 <table border="0" cellpadding="0" cellspacing="0" width="100%">
511 <tr valign="top">
512 <td align="left"><span class="table-header">Function Details</span></td>
513 <td align="right" valign="top"
514 ><span class="options">[<a href="#section-FunctionDetails"
515 class="privatelink" onclick="toggle_private();"
516 >hide private</a>]</span></td>
517 </tr>
518 </table>
519 </td>
520</tr>
521</table>
Joe Gregorio52a5c532013-01-24 16:19:07 -0500522<a name="clean_headers"></a>
523<div>
524<table class="details" border="1" cellpadding="3"
525 cellspacing="0" width="100%" bgcolor="white">
526<tr><td>
527 <table width="100%" cellpadding="0" cellspacing="0" border="0">
528 <tr valign="top"><td>
529 <h3 class="epydoc"><span class="sig"><span class="sig-name">clean_headers</span>(<span class="sig-arg">headers</span>)</span>
530 </h3>
531 </td><td align="right" valign="top"
532 ><span class="codelink"><a href="oauth2client.client-pysrc.html#clean_headers">source&nbsp;code</a></span>&nbsp;
533 </td>
534 </tr></table>
535
536 <pre class="literalblock">
537Forces header keys and values to be strings, i.e not unicode.
538
539The httplib module just concats the header keys and values in a way that may
540make the message header a unicode string, which, if it then tries to
541contatenate to a binary request body may result in a unicode decode error.
542
543Args:
544 headers: dict, A dictionary of headers.
545
546Returns:
547 The same dictionary but with all the keys converted to strings.
548
549</pre>
550 <dl class="fields">
551 </dl>
552</td></tr></table>
553</div>
Joe Gregorio41be8e82013-03-07 10:31:47 -0500554<a name="_update_query_params"></a>
555<div class="private">
556<table class="details" border="1" cellpadding="3"
557 cellspacing="0" width="100%" bgcolor="white">
558<tr><td>
559 <table width="100%" cellpadding="0" cellspacing="0" border="0">
560 <tr valign="top"><td>
561 <h3 class="epydoc"><span class="sig"><span class="sig-name">_update_query_params</span>(<span class="sig-arg">uri</span>,
562 <span class="sig-arg">params</span>)</span>
563 </h3>
564 </td><td align="right" valign="top"
565 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_update_query_params">source&nbsp;code</a></span>&nbsp;
566 </td>
567 </tr></table>
568
569 <pre class="literalblock">
570Updates a URI with new query parameters.
571
572Args:
573 uri: string, A valid URI, with potential existing query parameters.
574 params: dict, A dictionary of query parameters.
575
576Returns:
577 The same URI but with the new query parameters added.
578
579</pre>
580 <dl class="fields">
581 </dl>
582</td></tr></table>
583</div>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400584<a name="verify_id_token"></a>
585<div>
586<table class="details" border="1" cellpadding="3"
587 cellspacing="0" width="100%" bgcolor="white">
588<tr><td>
589 <table width="100%" cellpadding="0" cellspacing="0" border="0">
590 <tr valign="top"><td>
591 <h3 class="epydoc"><span class="sig"><span class="sig-name">verify_id_token</span>(<span class="sig-arg">id_token</span>,
592 <span class="sig-arg">audience</span>,
593 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
594 <span class="sig-arg">cert_uri</span>=<span class="sig-default">ID_TOKEN_VERIFICATON_CERTS</span>)</span>
595 </h3>
596 </td><td align="right" valign="top"
597 ><span class="codelink"><a href="oauth2client.client-pysrc.html#verify_id_token">source&nbsp;code</a></span>&nbsp;
598 </td>
599 </tr></table>
600
601 <pre class="literalblock">
602Verifies a signed JWT id_token.
603
604This function requires PyOpenSSL and because of that it does not work on
Joe Gregorio52a5c532013-01-24 16:19:07 -0500605App Engine.
Joe Gregoriof4839b02012-09-06 13:47:24 -0400606
607Args:
608 id_token: string, A Signed JWT.
609 audience: string, The audience 'aud' that the token should be for.
610 http: httplib2.Http, instance to use to make the HTTP request. Callers
611 should supply an instance that has caching enabled.
612 cert_uri: string, URI of the certificates in JSON format to
613 verify the JWT against.
614
615Returns:
616 The deserialized JSON in the JWT.
617
618Raises:
619 oauth2client.crypt.AppIdentityError if the JWT fails to verify.
620
621</pre>
622 <dl class="fields">
623 <dt>Decorators:</dt>
624 <dd><ul class="nomargin-top">
625 <li><code>@util.positional(2)</code></li>
626 </ul></dd>
627 </dl>
628</td></tr></table>
629</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400630<a name="_extract_id_token"></a>
631<div class="private">
632<table class="details" border="1" cellpadding="3"
633 cellspacing="0" width="100%" bgcolor="white">
634<tr><td>
635 <table width="100%" cellpadding="0" cellspacing="0" border="0">
636 <tr valign="top"><td>
637 <h3 class="epydoc"><span class="sig"><span class="sig-name">_extract_id_token</span>(<span class="sig-arg">id_token</span>)</span>
638 </h3>
639 </td><td align="right" valign="top"
640 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>&nbsp;
641 </td>
642 </tr></table>
643
644 <pre class="literalblock">
645Extract the JSON payload from a JWT.
646
647Does the extraction w/o checking the signature.
648
649Args:
650 id_token: string, OAuth 2.0 id_token.
651
652Returns:
653 object, The deserialized JSON payload.
654
655</pre>
656 <dl class="fields">
657 </dl>
658</td></tr></table>
659</div>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400660<a name="_parse_exchange_token_response"></a>
661<div class="private">
662<table class="details" border="1" cellpadding="3"
663 cellspacing="0" width="100%" bgcolor="white">
664<tr><td>
665 <table width="100%" cellpadding="0" cellspacing="0" border="0">
666 <tr valign="top"><td>
667 <h3 class="epydoc"><span class="sig"><span class="sig-name">_parse_exchange_token_response</span>(<span class="sig-arg">content</span>)</span>
668 </h3>
669 </td><td align="right" valign="top"
670 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>&nbsp;
671 </td>
672 </tr></table>
673
674 <pre class="literalblock">
675Parses response of an exchange token request.
676
677Most providers return JSON but some (e.g. Facebook) return a
678url-encoded string.
679
680Args:
681 content: The body of a response
682
683Returns:
684 Content as a dictionary object. Note that the dict could be empty,
685 i.e. {}. That basically indicates a failure.
686
687</pre>
688 <dl class="fields">
689 </dl>
690</td></tr></table>
691</div>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400692<a name="credentials_from_code"></a>
693<div>
694<table class="details" border="1" cellpadding="3"
695 cellspacing="0" width="100%" bgcolor="white">
696<tr><td>
697 <table width="100%" cellpadding="0" cellspacing="0" border="0">
698 <tr valign="top"><td>
699 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_code</span>(<span class="sig-arg">client_id</span>,
700 <span class="sig-arg">client_secret</span>,
701 <span class="sig-arg">scope</span>,
702 <span class="sig-arg">code</span>,
703 <span class="sig-arg">redirect_uri</span>=<span class="sig-default">'postmessage'</span>,
704 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
705 <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
Joe Gregorio41be8e82013-03-07 10:31:47 -0500706 <span class="sig-arg">token_uri</span>=<span class="sig-default">GOOGLE_TOKEN_URI</span>,
707 <span class="sig-arg">auth_uri</span>=<span class="sig-default">GOOGLE_AUTH_URI</span>,
708 <span class="sig-arg">revoke_uri</span>=<span class="sig-default">GOOGLE_REVOKE_URI</span>)</span>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400709 </h3>
710 </td><td align="right" valign="top"
711 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source&nbsp;code</a></span>&nbsp;
712 </td>
713 </tr></table>
714
715 <pre class="literalblock">
716Exchanges an authorization code for an OAuth2Credentials object.
717
718Args:
719 client_id: string, client identifier.
720 client_secret: string, client secret.
Joe Gregorio52a5c532013-01-24 16:19:07 -0500721 scope: string or iterable of strings, scope(s) to request.
Joe Gregoriof4839b02012-09-06 13:47:24 -0400722 code: string, An authroization code, most likely passed down from
723 the client
724 redirect_uri: string, this is generally set to 'postmessage' to match the
725 redirect_uri that the client specified
726 http: httplib2.Http, optional http instance to use to do the fetch
727 token_uri: string, URI for token endpoint. For convenience
728 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
Joe Gregorio41be8e82013-03-07 10:31:47 -0500729 auth_uri: string, URI for authorization endpoint. For convenience
730 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
731 revoke_uri: string, URI for revoke endpoint. For convenience
732 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
733
Joe Gregoriof4839b02012-09-06 13:47:24 -0400734Returns:
735 An OAuth2Credentials object.
736
737Raises:
738 FlowExchangeError if the authorization code cannot be exchanged for an
739 access token
740
741</pre>
742 <dl class="fields">
743 <dt>Decorators:</dt>
744 <dd><ul class="nomargin-top">
745 <li><code>@util.positional(4)</code></li>
746 </ul></dd>
747 </dl>
748</td></tr></table>
749</div>
750<a name="credentials_from_clientsecrets_and_code"></a>
751<div>
752<table class="details" border="1" cellpadding="3"
753 cellspacing="0" width="100%" bgcolor="white">
754<tr><td>
755 <table width="100%" cellpadding="0" cellspacing="0" border="0">
756 <tr valign="top"><td>
757 <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_clientsecrets_and_code</span>(<span class="sig-arg">filename</span>,
758 <span class="sig-arg">scope</span>,
759 <span class="sig-arg">code</span>,
760 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
761 <span class="sig-arg">redirect_uri</span>=<span class="sig-default">'postmessage'</span>,
762 <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
763 <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
764 </h3>
765 </td><td align="right" valign="top"
766 ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>&nbsp;
767 </td>
768 </tr></table>
769
770 <pre class="literalblock">
771Returns OAuth2Credentials from a clientsecrets file and an auth code.
772
773Will create the right kind of Flow based on the contents of the clientsecrets
774file or will raise InvalidClientSecretsError for unknown types of Flows.
775
776Args:
777 filename: string, File name of clientsecrets.
Joe Gregorio52a5c532013-01-24 16:19:07 -0500778 scope: string or iterable of strings, scope(s) to request.
Joe Gregoriof4839b02012-09-06 13:47:24 -0400779 code: string, An authorization code, most likely passed down from
780 the client
781 message: string, A friendly string to display to the user if the
782 clientsecrets file is missing or invalid. If message is provided then
783 sys.exit will be called in the case of an error. If message in not
784 provided then clientsecrets.InvalidClientSecretsError will be raised.
785 redirect_uri: string, this is generally set to 'postmessage' to match the
786 redirect_uri that the client specified
787 http: httplib2.Http, optional http instance to use to do the fetch
788 cache: An optional cache service client that implements get() and set()
789 methods. See clientsecrets.loadfile() for details.
790
791Returns:
792 An OAuth2Credentials object.
793
794Raises:
795 FlowExchangeError if the authorization code cannot be exchanged for an
796 access token
797 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
798 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
799 invalid.
800
801</pre>
802 <dl class="fields">
803 <dt>Decorators:</dt>
804 <dd><ul class="nomargin-top">
805 <li><code>@util.positional(3)</code></li>
806 </ul></dd>
807 </dl>
808</td></tr></table>
809</div>
810<a name="flow_from_clientsecrets"></a>
811<div>
812<table class="details" border="1" cellpadding="3"
813 cellspacing="0" width="100%" bgcolor="white">
814<tr><td>
815 <table width="100%" cellpadding="0" cellspacing="0" border="0">
816 <tr valign="top"><td>
817 <h3 class="epydoc"><span class="sig"><span class="sig-name">flow_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
818 <span class="sig-arg">scope</span>,
819 <span class="sig-arg">redirect_uri</span>=<span class="sig-default">None</span>,
820 <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
821 <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
822 </h3>
823 </td><td align="right" valign="top"
824 ><span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
825 </td>
826 </tr></table>
827
828 <pre class="literalblock">
829Create a Flow from a clientsecrets file.
830
831Will create the right kind of Flow based on the contents of the clientsecrets
832file or will raise InvalidClientSecretsError for unknown types of Flows.
833
834Args:
835 filename: string, File name of client secrets.
Joe Gregorio52a5c532013-01-24 16:19:07 -0500836 scope: string or iterable of strings, scope(s) to request.
Joe Gregoriof4839b02012-09-06 13:47:24 -0400837 redirect_uri: string, Either the string 'urn:ietf:wg:oauth:2.0:oob' for
Joe Gregorio41be8e82013-03-07 10:31:47 -0500838 a non-web-based application, or a URI that handles the callback from
839 the authorization server.
Joe Gregoriof4839b02012-09-06 13:47:24 -0400840 message: string, A friendly string to display to the user if the
841 clientsecrets file is missing or invalid. If message is provided then
842 sys.exit will be called in the case of an error. If message in not
843 provided then clientsecrets.InvalidClientSecretsError will be raised.
844 cache: An optional cache service client that implements get() and set()
845 methods. See clientsecrets.loadfile() for details.
846
847Returns:
848 A Flow object.
849
850Raises:
851 UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
852 clientsecrets.InvalidClientSecretsError if the clientsecrets file is
853 invalid.
854
855</pre>
856 <dl class="fields">
857 <dt>Decorators:</dt>
858 <dd><ul class="nomargin-top">
859 <li><code>@util.positional(2)</code></li>
860 </ul></dd>
861 </dl>
862</td></tr></table>
863</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400864<br />
865<!-- ==================== VARIABLES DETAILS ==================== -->
866<a name="section-VariablesDetails"></a>
867<table class="details" border="1" cellpadding="3"
868 cellspacing="0" width="100%" bgcolor="white">
869<tr bgcolor="#70b0f0" class="table-header">
870 <td colspan="2" class="table-header">
871 <table border="0" cellpadding="0" cellspacing="0" width="100%">
872 <tr valign="top">
873 <td align="left"><span class="table-header">Variables Details</span></td>
874 <td align="right" valign="top"
875 ><span class="options">[<a href="#section-VariablesDetails"
876 class="privatelink" onclick="toggle_private();"
877 >hide private</a>]</span></td>
878 </tr>
879 </table>
880 </td>
881</tr>
882</table>
883<a name="ID_TOKEN_VERIFICATON_CERTS"></a>
884<div>
885<table class="details" border="1" cellpadding="3"
886 cellspacing="0" width="100%" bgcolor="white">
887<tr><td>
888 <h3 class="epydoc">ID_TOKEN_VERIFICATON_CERTS</h3>
889
890 <dl class="fields">
891 </dl>
892 <dl class="fields">
893 <dt>Value:</dt>
894 <dd><table><tr><td><pre class="variable">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400895'https://www.googleapis.com/oauth2/v1/certs'
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400896</pre></td></tr></table>
897</dd>
898 </dl>
899</td></tr></table>
900</div>
901<br />
902<!-- ==================== NAVIGATION BAR ==================== -->
903<table class="navbar" border="0" width="100%" cellpadding="0"
904 bgcolor="#a0c0ff" cellspacing="0">
905 <tr valign="middle">
906
907 <!-- Tree link -->
908 <th>&nbsp;&nbsp;&nbsp;<a
909 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
910
911 <!-- Index link -->
912 <th>&nbsp;&nbsp;&nbsp;<a
913 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
914
915 <!-- Help link -->
916 <th>&nbsp;&nbsp;&nbsp;<a
917 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
918
919 <th class="navbar" width="100%"></th>
920 </tr>
921</table>
922<table border="0" cellpadding="0" cellspacing="0" width="100%%">
923 <tr>
924 <td align="left" class="footer">
Joe Gregorio41be8e82013-03-07 10:31:47 -0500925 Generated by Epydoc 3.0.1 on Thu Mar 7 10:31:23 2013
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400926 </td>
927 <td align="right" class="footer">
928 <a target="mainFrame" href="http://epydoc.sourceforge.net"
929 >http://epydoc.sourceforge.net</a>
930 </td>
931 </tr>
932</table>
933
934<script type="text/javascript">
935 <!--
936 // Private objects are initially displayed (because if
937 // javascript is turned off then we want them to be
938 // visible); but by default, we want to hide them. So hide
939 // them unless we have a cookie that says to show them.
940 checkCookie();
941 // -->
942</script>
943</body>
944</html>