我想从谷歌云函数中触发一些谷歌云API。你能帮我怎么做吗。如何获得Auth TOken和所有这些?
如果有人有一些示例用例,那就太好了。
如文档所述:
(您可以(通过使用服务帐户代表您行事。服务帐户提供您的功能的应用程序默认凭据。
使用应用程序默认凭据的API客户端库自动从云函数在运行时托管。默认情况下,客户端进行身份验证使用CCD_ 1服务帐户。
因此,您不需要获得Auth令牌。
您可以在官方的Firebase Cloud Functions示例页面中找到几个示例。例如,这个用于翻译API,或者这个用于视觉API。
Cloud Functions文档中也有一组示例(其中包括用Python、Go或Java编写的Cloud Functions(。
我认为您可以使用类似于此代码的东西。
它没有经过测试。
例如调用方法:projects.locations.instances.get
def make_func(request):
# Get the access token from the metadata server
metadata_server_token_url = 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token?scopes=https://www.googleapis.com/auth/cloud-platform'
token_request_headers = {'Metadata-Flavor': 'Google'}
token_response = requests.get(metadata_server_token_url, headers=token_request_headers)
token_response_decoded = token_response.content.decode("utf-8")
jwt = json.loads(token_response_decoded)['access_token']
# Use the api you mentioned to create the function
response = requests.post('https://datafusion.googleapis.com/v1beta1/projects/your-project/locations/us-central1/instances/your-instance',
headers={'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer {}'.format(jwt)} )
if response:
return 'Success! Function Created'
else:
return str(response.json())