如何通过云功能进行身份验证以使用YouTube API(Python 3)

时间:2019-10-01 12:08:09

标签: python google-api youtube-api google-cloud-functions

我可以使用此处概述的模式成功进行身份验证:

https://developers.google.com/youtube/v3/docs/videos/list?apix=true

以获得Google Colab中的简单原型。但是,由于没有用户来完成流程,因此我无法终生搞清楚如何在Cloud Function中进行身份验证。我确定这是一种标准模式,但是我对GCP API更加熟悉,而googleapiclient对我来说是一个新模式。

我已经设置了具有正确访问权限的服务帐户凭据,但是我什至不确定在Cloud Function(可能存储在GCS中)中使用这些凭据是否有意义,或者是否(如我所愿)更优雅的解决方案。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

对Youtube Data API并不是很熟悉,但是根据API参考了解一些详细信息,您需要以视频所有者的身份发出呼叫(例如processingDetails)。这意味着您需要使用three-legged OAuth2 flow。为此,您可以:

  • 设置另一个将生成授权URL的功能-> 呈现给用户->设置另一个功能为redirect_uri到 获取授权码->将其交换以进行访问和刷新 令牌->将刷新令牌存储在原始功能安全的地方 可以获取它。
  • 在Cloud Functions之外获取刷新令牌并对其进行硬编码。

硬编码凭据通常不是一个好习惯,因此更好的选择是让服务帐户代表用户发出请求,但这仅适用于通过domain-wide delegation的GSuite用户。这样,在设置后,您可以将sub声明与模拟用户的电子邮件地址一起使用。您可以查看更多here(确保切换到HTTP / REST来了解JWT的创建方式,或者,如果您对详细信息不感兴趣,只需选择Python。