Google oAuth2 和 Youtube API 的不正确填充错误

Incorrect padding error with Google oAuth2 and Youtube API

我一直在尝试使用 google oAuth2.0 验证我的 django(python 3.4、django 1.9)应用程序以使用 Youtube 数据 API v3.

我有一个用于服务器到服务器身份验证的 JSON 密钥(类型:服务帐户)。

错误源自以下 build() 方法:

client_email = '***@***.iam.gserviceaccount.com'
with open('key.json', 'r+b', 0) as f:
    private_key = f.read()

credentials = SignedJwtAssertionCredentials(client_email, private_key,'https://www.googleapis.com/auth/youtube')
http_auth = credentials.authorize(Http())

service = build(str('youtube', 'v3', http=http_auth)
response = service.channels().list(part="id").execute()

我得到的错误是:

不正确的填充异常在 /usr/lib/python3/dist-packages/Crypto/PublicKey/RSA.py in importKey,第 660 行

这是这一行:

der = binascii.a2b_base64(b('').join(lines[1:-1]))

我是 python 和 django 的新手,所以我的调试技巧还没有达到标准。

我没有找到这个问题的答案,但我发现您不能将服务帐户与 YouTube 数据 API v3 一起使用,这使得这个问题没有实际意义。

来源:https://developers.google.com/youtube/v3/guides/authentication