我正在使用Youtube Data API (v3)以及Google App Engine上的Python client library。
以下是一段简单的代码片段:
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流上传视频(代表该用户)。
有人可以向我解释为什么委托与服务帐户已经注册的帐户相同的用户帐户失败,以及我如何能够允许它?