@@ -219,7 +219,7 @@ def build(serviceName,
219
219
220
220
try :
221
221
content = _retrieve_discovery_doc (
222
- requested_url , discovery_http , cache_discovery , cache )
222
+ requested_url , discovery_http , cache_discovery , cache , developerKey )
223
223
return build_from_document (content , base = discovery_url , http = http ,
224
224
developerKey = developerKey , model = model , requestBuilder = requestBuilder ,
225
225
credentials = credentials )
@@ -233,7 +233,8 @@ def build(serviceName,
233
233
"name: %s version: %s" % (serviceName , version ))
234
234
235
235
236
- def _retrieve_discovery_doc (url , http , cache_discovery , cache = None ):
236
+ def _retrieve_discovery_doc (url , http , cache_discovery , cache = None ,
237
+ developerKey = None ):
237
238
"""Retrieves the discovery_doc from cache or the internet.
238
239
239
240
Args:
@@ -264,6 +265,8 @@ def _retrieve_discovery_doc(url, http, cache_discovery, cache=None):
264
265
# document to avoid exceeding the quota on discovery requests.
265
266
if 'REMOTE_ADDR' in os .environ :
266
267
actual_url = _add_query_parameter (url , 'userIp' , os .environ ['REMOTE_ADDR' ])
268
+ if developerKey :
269
+ actual_url = _add_query_parameter (url , 'key' , developerKey )
267
270
logger .info ('URL being requested: GET %s' , actual_url )
268
271
269
272
resp , content = http .request (actual_url )
@@ -360,7 +363,9 @@ def build_from_document(
360
363
# The credentials need to be scoped.
361
364
credentials = _auth .with_scopes (credentials , scopes )
362
365
363
- # Create an authorized http instance
366
+ # If credentials are provided, create an authorized http instance;
367
+ # otherwise, skip authentication.
368
+ if credentials :
364
369
http = _auth .authorized_http (credentials )
365
370
366
371
# If the service doesn't require scopes then there is no need for
0 commit comments