blob: ec89c73fc0394ff5f2c11134908ef984369146e6 [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.clientsecrets</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;clientsecrets
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.clientsecrets-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 clientsecrets</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html">source&nbsp;code</a></span></p>
56<pre class="literalblock">
57Utilities for reading OAuth 2.0 client secret files.
58
59A client_secrets.json file contains all the information needed to interact with
60an OAuth 2.0 protected service.
61
62</pre>
63
64<hr />
65<div class="fields"> <p><strong>Author:</strong>
66 jcgregorio@google.com (Joe Gregorio)
67 </p>
68</div><!-- ==================== CLASSES ==================== -->
69<a name="section-Classes"></a>
70<table class="summary" border="1" cellpadding="3"
71 cellspacing="0" width="100%" bgcolor="white">
72<tr bgcolor="#70b0f0" class="table-header">
73 <td colspan="2" class="table-header">
74 <table border="0" cellpadding="0" cellspacing="0" width="100%">
75 <tr valign="top">
76 <td align="left"><span class="table-header">Classes</span></td>
77 <td align="right" valign="top"
78 ><span class="options">[<a href="#section-Classes"
79 class="privatelink" onclick="toggle_private();"
80 >hide private</a>]</span></td>
81 </tr>
82 </table>
83 </td>
84</tr>
85<tr>
86 <td width="15%" align="right" valign="top" class="summary">
87 <span class="summary-type">&nbsp;</span>
88 </td><td class="summary">
89 <a href="oauth2client.clientsecrets.Error-class.html" class="summary-name">Error</a><br />
90 Base error for this module.
91 </td>
92 </tr>
93<tr>
94 <td width="15%" align="right" valign="top" class="summary">
95 <span class="summary-type">&nbsp;</span>
96 </td><td class="summary">
97 <a href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html" class="summary-name">InvalidClientSecretsError</a><br />
98 Format of ClientSecrets file is invalid.
99 </td>
100 </tr>
101</table>
102<!-- ==================== FUNCTIONS ==================== -->
103<a name="section-Functions"></a>
104<table class="summary" border="1" cellpadding="3"
105 cellspacing="0" width="100%" bgcolor="white">
106<tr bgcolor="#70b0f0" class="table-header">
107 <td colspan="2" class="table-header">
108 <table border="0" cellpadding="0" cellspacing="0" width="100%">
109 <tr valign="top">
110 <td align="left"><span class="table-header">Functions</span></td>
111 <td align="right" valign="top"
112 ><span class="options">[<a href="#section-Functions"
113 class="privatelink" onclick="toggle_private();"
114 >hide private</a>]</span></td>
115 </tr>
116 </table>
117 </td>
118</tr>
119<tr class="private">
120 <td width="15%" align="right" valign="top" class="summary">
121 <span class="summary-type">&nbsp;</span>
122 </td><td class="summary">
123 <table width="100%" cellpadding="0" cellspacing="0" border="0">
124 <tr>
125 <td><span class="summary-sig"><a name="_validate_clientsecrets"></a><span class="summary-sig-name">_validate_clientsecrets</span>(<span class="summary-sig-arg">obj</span>)</span></td>
126 <td align="right" valign="top">
127 <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#_validate_clientsecrets">source&nbsp;code</a></span>
128
129 </td>
130 </tr>
131 </table>
132
133 </td>
134 </tr>
135<tr>
136 <td width="15%" align="right" valign="top" class="summary">
137 <span class="summary-type">&nbsp;</span>
138 </td><td class="summary">
139 <table width="100%" cellpadding="0" cellspacing="0" border="0">
140 <tr>
141 <td><span class="summary-sig"><a name="load"></a><span class="summary-sig-name">load</span>(<span class="summary-sig-arg">fp</span>)</span></td>
142 <td align="right" valign="top">
143 <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#load">source&nbsp;code</a></span>
144
145 </td>
146 </tr>
147 </table>
148
149 </td>
150 </tr>
151<tr>
152 <td width="15%" align="right" valign="top" class="summary">
153 <span class="summary-type">&nbsp;</span>
154 </td><td class="summary">
155 <table width="100%" cellpadding="0" cellspacing="0" border="0">
156 <tr>
157 <td><span class="summary-sig"><a name="loads"></a><span class="summary-sig-name">loads</span>(<span class="summary-sig-arg">s</span>)</span></td>
158 <td align="right" valign="top">
159 <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#loads">source&nbsp;code</a></span>
160
161 </td>
162 </tr>
163 </table>
164
165 </td>
166 </tr>
Joe Gregoriofa08c2e2012-07-23 16:52:03 -0400167<tr class="private">
168 <td width="15%" align="right" valign="top" class="summary">
169 <span class="summary-type">&nbsp;</span>
170 </td><td class="summary">
171 <table width="100%" cellpadding="0" cellspacing="0" border="0">
172 <tr>
173 <td><span class="summary-sig"><a name="_loadfile"></a><span class="summary-sig-name">_loadfile</span>(<span class="summary-sig-arg">filename</span>)</span></td>
174 <td align="right" valign="top">
175 <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#_loadfile">source&nbsp;code</a></span>
176
177 </td>
178 </tr>
179 </table>
180
181 </td>
182 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400183<tr>
184 <td width="15%" align="right" valign="top" class="summary">
185 <span class="summary-type">&nbsp;</span>
186 </td><td class="summary">
187 <table width="100%" cellpadding="0" cellspacing="0" border="0">
188 <tr>
Joe Gregoriofa08c2e2012-07-23 16:52:03 -0400189 <td><span class="summary-sig"><a href="oauth2client.clientsecrets-module.html#loadfile" class="summary-sig-name">loadfile</a>(<span class="summary-sig-arg">filename</span>,
190 <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
191 Loading of client_secrets JSON file, optionally backed by a cache.</td>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400192 <td align="right" valign="top">
193 <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#loadfile">source&nbsp;code</a></span>
194
195 </td>
196 </tr>
197 </table>
198
199 </td>
200 </tr>
201</table>
202<!-- ==================== VARIABLES ==================== -->
203<a name="section-Variables"></a>
204<table class="summary" border="1" cellpadding="3"
205 cellspacing="0" width="100%" bgcolor="white">
206<tr bgcolor="#70b0f0" class="table-header">
207 <td colspan="2" class="table-header">
208 <table border="0" cellpadding="0" cellspacing="0" width="100%">
209 <tr valign="top">
210 <td align="left"><span class="table-header">Variables</span></td>
211 <td align="right" valign="top"
212 ><span class="options">[<a href="#section-Variables"
213 class="privatelink" onclick="toggle_private();"
214 >hide private</a>]</span></td>
215 </tr>
216 </table>
217 </td>
218</tr>
219<tr>
220 <td width="15%" align="right" valign="top" class="summary">
221 <span class="summary-type">&nbsp;</span>
222 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400223 <a name="TYPE_WEB"></a><span class="summary-name">TYPE_WEB</span> = <code title="'web'">'web'</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400224 </td>
225 </tr>
226<tr>
227 <td width="15%" align="right" valign="top" class="summary">
228 <span class="summary-type">&nbsp;</span>
229 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400230 <a name="TYPE_INSTALLED"></a><span class="summary-name">TYPE_INSTALLED</span> = <code title="'installed'">'installed'</code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400231 </td>
232 </tr>
233<tr>
234 <td width="15%" align="right" valign="top" class="summary">
235 <span class="summary-type">&nbsp;</span>
236 </td><td class="summary">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400237 <a href="oauth2client.clientsecrets-module.html#VALID_CLIENT" class="summary-name">VALID_CLIENT</a> = <code title="{TYPE_WEB: {'required': ['client_id', 'client_secret', 'redirect_uris'\
238, 'auth_uri', 'token_uri'], 'string': ['client_id', 'client_secret']},\
239 TYPE_INSTALLED: {'required': ['client_id', 'client_secret', 'redirect\
240_uris', 'auth_uri', 'token_uri'], 'string': ['client_id', 'client_secr\
241et']}}">{TYPE_WEB: {'required': ['client_id', 'client_s<code class="variable-ellipsis">...</code></code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400242 </td>
243 </tr>
244</table>
Joe Gregoriofa08c2e2012-07-23 16:52:03 -0400245<!-- ==================== FUNCTION DETAILS ==================== -->
246<a name="section-FunctionDetails"></a>
247<table class="details" border="1" cellpadding="3"
248 cellspacing="0" width="100%" bgcolor="white">
249<tr bgcolor="#70b0f0" class="table-header">
250 <td colspan="2" class="table-header">
251 <table border="0" cellpadding="0" cellspacing="0" width="100%">
252 <tr valign="top">
253 <td align="left"><span class="table-header">Function Details</span></td>
254 <td align="right" valign="top"
255 ><span class="options">[<a href="#section-FunctionDetails"
256 class="privatelink" onclick="toggle_private();"
257 >hide private</a>]</span></td>
258 </tr>
259 </table>
260 </td>
261</tr>
262</table>
263<a name="loadfile"></a>
264<div>
265<table class="details" border="1" cellpadding="3"
266 cellspacing="0" width="100%" bgcolor="white">
267<tr><td>
268 <table width="100%" cellpadding="0" cellspacing="0" border="0">
269 <tr valign="top"><td>
270 <h3 class="epydoc"><span class="sig"><span class="sig-name">loadfile</span>(<span class="sig-arg">filename</span>,
271 <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
272 </h3>
273 </td><td align="right" valign="top"
274 ><span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#loadfile">source&nbsp;code</a></span>&nbsp;
275 </td>
276 </tr></table>
277
278 <pre class="literalblock">
279Loading of client_secrets JSON file, optionally backed by a cache.
280
281Typical cache storage would be App Engine memcache service,
282but you can pass in any other cache client that implements
283these methods:
284 - get(key, namespace=ns)
285 - set(key, value, namespace=ns)
286
287Usage:
288 # without caching
289 client_type, client_info = loadfile('secrets.json')
290 # using App Engine memcache service
291 from google.appengine.api import memcache
292 client_type, client_info = loadfile('secrets.json', cache=memcache)
293
294Args:
295 filename: string, Path to a client_secrets.json file on a filesystem.
296 cache: An optional cache service client that implements get() and set()
297 methods. If not specified, the file is always being loaded from
298 a filesystem.
299
300Raises:
301 InvalidClientSecretsError: In case of a validation error or some
302 I/O failure. Can happen only on cache miss.
303
304Returns:
305 (client_type, client_info) tuple, as _loadfile() normally would.
306 JSON contents is validated only during first load. Cache hits are not
307 validated.
308
309</pre>
310 <dl class="fields">
311 </dl>
312</td></tr></table>
313</div>
314<br />
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400315<!-- ==================== VARIABLES DETAILS ==================== -->
316<a name="section-VariablesDetails"></a>
317<table class="details" border="1" cellpadding="3"
318 cellspacing="0" width="100%" bgcolor="white">
319<tr bgcolor="#70b0f0" class="table-header">
320 <td colspan="2" class="table-header">
321 <table border="0" cellpadding="0" cellspacing="0" width="100%">
322 <tr valign="top">
323 <td align="left"><span class="table-header">Variables Details</span></td>
324 <td align="right" valign="top"
325 ><span class="options">[<a href="#section-VariablesDetails"
326 class="privatelink" onclick="toggle_private();"
327 >hide private</a>]</span></td>
328 </tr>
329 </table>
330 </td>
331</tr>
332</table>
333<a name="VALID_CLIENT"></a>
334<div>
335<table class="details" border="1" cellpadding="3"
336 cellspacing="0" width="100%" bgcolor="white">
337<tr><td>
338 <h3 class="epydoc">VALID_CLIENT</h3>
339
340 <dl class="fields">
341 </dl>
342 <dl class="fields">
343 <dt>Value:</dt>
344 <dd><table><tr><td><pre class="variable">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400345{TYPE_WEB: {'required': ['client_id', 'client_secret', 'redirect_uris'<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
346, 'auth_uri', 'token_uri'], 'string': ['client_id', 'client_secret']},<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
347 TYPE_INSTALLED: {'required': ['client_id', 'client_secret', 'redirect<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
348_uris', 'auth_uri', 'token_uri'], 'string': ['client_id', 'client_secr<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
349et']}}
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400350</pre></td></tr></table>
351</dd>
352 </dl>
353</td></tr></table>
354</div>
355<br />
356<!-- ==================== NAVIGATION BAR ==================== -->
357<table class="navbar" border="0" width="100%" cellpadding="0"
358 bgcolor="#a0c0ff" cellspacing="0">
359 <tr valign="middle">
360
361 <!-- Tree link -->
362 <th>&nbsp;&nbsp;&nbsp;<a
363 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
364
365 <!-- Index link -->
366 <th>&nbsp;&nbsp;&nbsp;<a
367 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
368
369 <!-- Help link -->
370 <th>&nbsp;&nbsp;&nbsp;<a
371 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
372
373 <th class="navbar" width="100%"></th>
374 </tr>
375</table>
376<table border="0" cellpadding="0" cellspacing="0" width="100%%">
377 <tr>
378 <td align="left" class="footer">
Joe Gregorio52a5c532013-01-24 16:19:07 -0500379 Generated by Epydoc 3.0.1 on Thu Jan 24 16:14:31 2013
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400380 </td>
381 <td align="right" class="footer">
382 <a target="mainFrame" href="http://epydoc.sourceforge.net"
383 >http://epydoc.sourceforge.net</a>
384 </td>
385 </tr>
386</table>
387
388<script type="text/javascript">
389 <!--
390 // Private objects are initially displayed (because if
391 // javascript is turned off then we want them to be
392 // visible); but by default, we want to hide them. So hide
393 // them unless we have a cookie that says to show them.
394 checkCookie();
395 // -->
396</script>
397</body>
398</html>