获取我的谷歌服务帐户的授权令牌密钥
Posted
技术标签:
【中文标题】获取我的谷歌服务帐户的授权令牌密钥【英文标题】:Getting authorization token-key for my google service account 【发布时间】:2021-10-18 05:10:10 【问题描述】:我实际上想使用此 api 回复我的 google play 应用程序的 cmets: https://developers.google.com/android-publisher/reply-to-reviews#gaining_access 但是在这里,它要我输入auth_token。首先,我将服务帐户添加到我的 google play 中。之后,我创建了一个密钥,并为我的密钥下载了 json 文件。使用这个 json 文件我试图获得身份验证。令牌,但此代码的输出告诉我凭据无效,令牌为“无”。我想解决这个问题。谢谢。
from google.oauth2 import service_account
import googleapiclient.discovery
SCOPES = ['https://www.googleapis.com/auth/cloud-platform',
'https://oauth2.googleapis.com/token',
'https://accounts.google.com/o/oauth2/auth',
'https://www.googleapis.com/oauth2/v1/certs',
'https://www.googleapis.com/robot/v1/metadata/x509/myusername.gserviceaccount.com']
SERVICE_ACCOUNT_FILE = 'service.json'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
print(credentials._token_uri)
print(dir(credentials))
print(credentials.valid)
print(credentials.token)
我研究的资源:
https://developers.google.com/identity/protocols/oauth2#serviceaccount https://developers.google.com/identity/protocols/oauth2/service-account#python_1 https://developers.google.com/android-publisher/reply-to-reviews#gaining_access
注意:人们也会像这样发送他们的 API 请求:
service = build('drive', 'v3', credentials=credentials)
例如上面的代码是为谷歌驱动器发送 api 请求。我怎样才能达到我的目的?例如,我想使用“build”访问 google play api。
【问题讨论】:
【参考方案1】:构建方法的关键在于,它首先获取 API,然后获取您要访问的 API 版本,然后是您的凭据。
service = build('drive', 'v3', credentials=credentials)
如果您查看Discovery services,您会找到所有 google api 的列表
android发布者的入口如下
"kind": "discovery#directoryItem",
"id": "androidpublisher:v3",
"name": "androidpublisher",
"version": "v3",
"title": "Google Play Android Developer API",
"description": "Lets Android application developers access their Google Play accounts.",
"discoveryRestUrl": "https://androidpublisher.googleapis.com/$discovery/rest?version=v3",
"icons":
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
,
"documentationLink": "https://developers.google.com/android-publisher",
"preferred": true
,
这意味着以下内容应该是您要查找的内容。
service = build('androidpublisher', 'v3', credentials=credentials)
【讨论】:
非常感谢先生 :)以上是关于获取我的谷歌服务帐户的授权令牌密钥的主要内容,如果未能解决你的问题,请参考以下文章
使用从客户端收到的谷歌授权码在服务器端 javascript (nodejs) 上获取访问令牌