blob: 94e62755a9959b41956e344ff2debcfade27c837 [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>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400238<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="_urlsafe_b64decode"></a><span class="summary-sig-name">_urlsafe_b64decode</span>(<span class="summary-sig-arg">b64string</span>)</span></td>
245 <td align="right" valign="top">
246 <span class="codelink"><a href="oauth2client.client-pysrc.html#_urlsafe_b64decode">source&nbsp;code</a></span>
247
248 </td>
249 </tr>
250 </table>
251
252 </td>
253 </tr>
254<tr class="private">
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>
260 <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 />
261 Extract the JSON payload from a JWT.</td>
262 <td align="right" valign="top">
263 <span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>
264
265 </td>
266 </tr>
267 </table>
268
269 </td>
270 </tr>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400271<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#_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 />
278 Parses response of an exchange token request.</td>
279 <td align="right" valign="top">
280 <span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>
281
282 </td>
283 </tr>
284 </table>
285
286 </td>
287 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400288</table>
289<!-- ==================== VARIABLES ==================== -->
290<a name="section-Variables"></a>
291<table class="summary" border="1" cellpadding="3"
292 cellspacing="0" width="100%" bgcolor="white">
293<tr bgcolor="#70b0f0" class="table-header">
294 <td colspan="2" class="table-header">
295 <table border="0" cellpadding="0" cellspacing="0" width="100%">
296 <tr valign="top">
297 <td align="left"><span class="table-header">Variables</span></td>
298 <td align="right" valign="top"
299 ><span class="options">[<a href="#section-Variables"
300 class="privatelink" onclick="toggle_private();"
301 >hide private</a>]</span></td>
302 </tr>
303 </table>
304 </td>
305</tr>
306<tr>
307 <td width="15%" align="right" valign="top" class="summary">
308 <span class="summary-type">&nbsp;</span>
309 </td><td class="summary">
310 <a name="HAS_OPENSSL"></a><span class="summary-name">HAS_OPENSSL</span> = <code title="True">True</code>
311 </td>
312 </tr>
313<tr>
314 <td width="15%" align="right" valign="top" class="summary">
315 <span class="summary-type">&nbsp;</span>
316 </td><td class="summary">
317 <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
318 </td>
319 </tr>
320<tr>
321 <td width="15%" align="right" valign="top" class="summary">
322 <span class="summary-type">&nbsp;</span>
323 </td><td class="summary">
324 <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>
325 </td>
326 </tr>
327<tr>
328 <td width="15%" align="right" valign="top" class="summary">
329 <span class="summary-type">&nbsp;</span>
330 </td><td class="summary">
331 <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>
332 </td>
333 </tr>
334<tr>
335 <td width="15%" align="right" valign="top" class="summary">
336 <span class="summary-type">&nbsp;</span>
337 </td><td class="summary">
338 <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>
339 </td>
340 </tr>
341<tr class="private">
342 <td width="15%" align="right" valign="top" class="summary">
343 <span class="summary-type">&nbsp;</span>
344 </td><td class="summary">
345 <a name="_cached_http"></a><span class="summary-name">_cached_http</span> = <code title="httplib2.Http(MemoryCache())">httplib2.Http(MemoryCache())</code>
346 </td>
347 </tr>
348<tr>
349 <td width="15%" align="right" valign="top" class="summary">
350 <span class="summary-type">&nbsp;</span>
351 </td><td class="summary">
352 <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>
353 </td>
354 </tr>
355</table>
356<!-- ==================== FUNCTION DETAILS ==================== -->
357<a name="section-FunctionDetails"></a>
358<table class="details" border="1" cellpadding="3"
359 cellspacing="0" width="100%" bgcolor="white">
360<tr bgcolor="#70b0f0" class="table-header">
361 <td colspan="2" class="table-header">
362 <table border="0" cellpadding="0" cellspacing="0" width="100%">
363 <tr valign="top">
364 <td align="left"><span class="table-header">Function Details</span></td>
365 <td align="right" valign="top"
366 ><span class="options">[<a href="#section-FunctionDetails"
367 class="privatelink" onclick="toggle_private();"
368 >hide private</a>]</span></td>
369 </tr>
370 </table>
371 </td>
372</tr>
373</table>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400374<a name="_extract_id_token"></a>
375<div class="private">
376<table class="details" border="1" cellpadding="3"
377 cellspacing="0" width="100%" bgcolor="white">
378<tr><td>
379 <table width="100%" cellpadding="0" cellspacing="0" border="0">
380 <tr valign="top"><td>
381 <h3 class="epydoc"><span class="sig"><span class="sig-name">_extract_id_token</span>(<span class="sig-arg">id_token</span>)</span>
382 </h3>
383 </td><td align="right" valign="top"
384 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_extract_id_token">source&nbsp;code</a></span>&nbsp;
385 </td>
386 </tr></table>
387
388 <pre class="literalblock">
389Extract the JSON payload from a JWT.
390
391Does the extraction w/o checking the signature.
392
393Args:
394 id_token: string, OAuth 2.0 id_token.
395
396Returns:
397 object, The deserialized JSON payload.
398
399</pre>
400 <dl class="fields">
401 </dl>
402</td></tr></table>
403</div>
Joe Gregorioe7a0c472012-07-12 11:46:04 -0400404<a name="_parse_exchange_token_response"></a>
405<div class="private">
406<table class="details" border="1" cellpadding="3"
407 cellspacing="0" width="100%" bgcolor="white">
408<tr><td>
409 <table width="100%" cellpadding="0" cellspacing="0" border="0">
410 <tr valign="top"><td>
411 <h3 class="epydoc"><span class="sig"><span class="sig-name">_parse_exchange_token_response</span>(<span class="sig-arg">content</span>)</span>
412 </h3>
413 </td><td align="right" valign="top"
414 ><span class="codelink"><a href="oauth2client.client-pysrc.html#_parse_exchange_token_response">source&nbsp;code</a></span>&nbsp;
415 </td>
416 </tr></table>
417
418 <pre class="literalblock">
419Parses response of an exchange token request.
420
421Most providers return JSON but some (e.g. Facebook) return a
422url-encoded string.
423
424Args:
425 content: The body of a response
426
427Returns:
428 Content as a dictionary object. Note that the dict could be empty,
429 i.e. {}. That basically indicates a failure.
430
431</pre>
432 <dl class="fields">
433 </dl>
434</td></tr></table>
435</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400436<br />
437<!-- ==================== VARIABLES DETAILS ==================== -->
438<a name="section-VariablesDetails"></a>
439<table class="details" border="1" cellpadding="3"
440 cellspacing="0" width="100%" bgcolor="white">
441<tr bgcolor="#70b0f0" class="table-header">
442 <td colspan="2" class="table-header">
443 <table border="0" cellpadding="0" cellspacing="0" width="100%">
444 <tr valign="top">
445 <td align="left"><span class="table-header">Variables Details</span></td>
446 <td align="right" valign="top"
447 ><span class="options">[<a href="#section-VariablesDetails"
448 class="privatelink" onclick="toggle_private();"
449 >hide private</a>]</span></td>
450 </tr>
451 </table>
452 </td>
453</tr>
454</table>
455<a name="ID_TOKEN_VERIFICATON_CERTS"></a>
456<div>
457<table class="details" border="1" cellpadding="3"
458 cellspacing="0" width="100%" bgcolor="white">
459<tr><td>
460 <h3 class="epydoc">ID_TOKEN_VERIFICATON_CERTS</h3>
461
462 <dl class="fields">
463 </dl>
464 <dl class="fields">
465 <dt>Value:</dt>
466 <dd><table><tr><td><pre class="variable">
467<code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/oauth2/v1/certs</code><code class="variable-quote">'</code>
468</pre></td></tr></table>
469</dd>
470 </dl>
471</td></tr></table>
472</div>
473<br />
474<!-- ==================== NAVIGATION BAR ==================== -->
475<table class="navbar" border="0" width="100%" cellpadding="0"
476 bgcolor="#a0c0ff" cellspacing="0">
477 <tr valign="middle">
478
479 <!-- Tree link -->
480 <th>&nbsp;&nbsp;&nbsp;<a
481 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
482
483 <!-- Index link -->
484 <th>&nbsp;&nbsp;&nbsp;<a
485 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
486
487 <!-- Help link -->
488 <th>&nbsp;&nbsp;&nbsp;<a
489 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
490
491 <th class="navbar" width="100%"></th>
492 </tr>
493</table>
494<table border="0" cellpadding="0" cellspacing="0" width="100%%">
495 <tr>
496 <td align="left" class="footer">
Joe Gregorio0cd347a2012-08-30 08:22:27 -0400497 Generated by Epydoc 3.0.1 on Thu Aug 30 07:12:42 2012
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400498 </td>
499 <td align="right" class="footer">
500 <a target="mainFrame" href="http://epydoc.sourceforge.net"
501 >http://epydoc.sourceforge.net</a>
502 </td>
503 </tr>
504</table>
505
506<script type="text/javascript">
507 <!--
508 // Private objects are initially displayed (because if
509 // javascript is turned off then we want them to be
510 // visible); but by default, we want to hide them. So hide
511 // them unless we have a cookie that says to show them.
512 checkCookie();
513 // -->
514</script>
515</body>
516</html>