Inc*_*tor 7 google-calendar-api alexa google-api-client
我正在为Google日历构建Alexa Skill。客户端代码可以在本地计算机上按预期工作,因为我可以使用链接对本地计算机进行身份验证。但是,当我在AWS Lambda上部署代码时,由于无法通过AWS控制台输入代码,因此无法进行身份验证。
当部署在AWS lambda上时,我无法设置Google Calendar API的身份验证。
本文档对我没有太大帮助 Google实施服务器端身份验证
您应该创建一个服务帐户。这些是专为服务器到服务器通信而设计的。文档可以在这里找到:https : //developers.google.com/identity/protocols/OAuth2ServiceAccount
其他答案的解决方案存在的问题是:
gcloud auth print-access-token
)过期。由于 Lambda 是无状态的,因此无法临时存储令牌并在它到期时刷新它。您必须执行此处指定的 2 个步骤,如果您正确遵循,您将完成此操作。
\n\n首先,(仅第一次)您需要设置项目并下载GOOGLE APPLICATION CREDENTIALS
一个包含身份验证信息的 json 文件,假设您将其命名为 project.json
现在,您需要执行一些命令来获取访问令牌,下载并安装Cloud SDK才能访问这些命令。
\n\n gcloud auth activate-service-account --key-file=/home/panchicore/project.json\n
Run Code Online (Sandbox Code Playgroud)\n\n然后
\n\ngcloud auth print-access-token\n
Run Code Online (Sandbox Code Playgroud)\n\n此时您将获得密钥,现在我们可以在下一步中使用它:
\n\n其次,发出翻译 API 请求:(我是如何做到的并使用 python 请求进行测试)
\n\nimport requests\n\nkey = "KEY GOT WITH gcloud auth print-access-token"\n\nheaders = {\n \'Content-Type\': \'application/json\',\n \'Authorization\': \'Bearer {}\'.format(key)\n}\n\nurl = \'https://translation.googleapis.com/language/translate/v2\'\n\ndata = {\n \'q\': \'The quick brown fox jumped over the lazy dog.\',\n \'source\': \'en\',\n \'target\': \'es\',\n \'format\': \'text\'\n}\n\nres = requests.post(url, json=data, headers=headers)\n\nprint res.content\n>>> El r\xc3\xa1pido zorro marr\xc3\xb3n salt\xc3\xb3 sobre el perro perezoso.\n
Run Code Online (Sandbox Code Playgroud)\n\n希望能帮助到你。
\n 归档时间: |
|
查看次数: |
8377 次 |
最近记录: |