@@ -219,7 +219,7 @@ def build(serviceName,
219219
220220 try :
221221 content = _retrieve_discovery_doc (
222- requested_url , discovery_http , cache_discovery , cache )
222+ requested_url , discovery_http , cache_discovery , cache , developerKey )
223223 return build_from_document (content , base = discovery_url , http = http ,
224224 developerKey = developerKey , model = model , requestBuilder = requestBuilder ,
225225 credentials = credentials )
@@ -233,7 +233,8 @@ def build(serviceName,
233233 "name: %s version: %s" % (serviceName , version ))
234234
235235
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 ):
237238 """Retrieves the discovery_doc from cache or the internet.
238239
239240 Args:
@@ -264,6 +265,8 @@ def _retrieve_discovery_doc(url, http, cache_discovery, cache=None):
264265 # document to avoid exceeding the quota on discovery requests.
265266 if 'REMOTE_ADDR' in os .environ :
266267 actual_url = _add_query_parameter (url , 'userIp' , os .environ ['REMOTE_ADDR' ])
268+ if developerKey :
269+ actual_url = _add_query_parameter (url , 'key' , developerKey )
267270 logger .info ('URL being requested: GET %s' , actual_url )
268271
269272 resp , content = http .request (actual_url )
@@ -360,7 +363,9 @@ def build_from_document(
360363 # The credentials need to be scoped.
361364 credentials = _auth .with_scopes (credentials , scopes )
362365
363- # Create an authorized http instance
366+ # If credentials are provided, create an authorized http instance;
367+ # otherwise, skip authentication.
368+ if credentials :
364369 http = _auth .authorized_http (credentials )
365370
366371 # If the service doesn't require scopes then there is no need for
0 commit comments