我正在使用Youtube Data API (v3)以及Google App Engine 上的Python 客户端库。
这是一个失败的简单代码片段:
kwargs = {'prn' : google_oauth_user_email}
credentials = SignedJwtAssertionCredentials(google_oauth_email, google_oauth_key, scope=YOUTUBE_SCOPE, **kwargs)
http = credentials.authorize(httplib2.Http())
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, http=http)
request = youtube.channels().list(part="snippet", id="25")
response = request.execute(http=http)
这导致:
Failed to retrieve access token: {
"error" : "access_denied"
}
如果我删除 kwargs 以免委派用户访问权限,则此请求可以正常工作。服务帐户是针对请求委派的同一用户帐户注册的。
我的最终目标是使用服务器到服务器两条腿的 OAuth2 流上传视频(代表该用户)。
任何人都可以向我解释为什么委派到与服务帐户已注册的用户帐户相同的用户帐户失败,以及我如何能够允许它?