我想使用 python 添加或删除 Looker Studio 仪表板的用户权限,
但我在身份验证过程中遇到问题。
我尝试使用服务帐户或 OAuth2 客户端获取 Looker Studio API 的访问令牌,
但总是出现权限被拒绝的错误。
iat = int(time.time())
exp = iat + 3600
claim_set = {
"iss": service_account["client_email"],
"scope": "https://www.googleapis.com/auth/datastudio",
"aud": "https://oauth2.googleapis.com/token", "exp": exp, "iat": iat}
encoded = jwt.encode(claim_set, service_account["private_key"], algorithm="RS256")
params = {"grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer", "assertion": encoded}
response = requests.post("https://oauth2.googleapis.com/token", params=params)
access_token = response.json()["access_token"]
headers = {"Authorization": f"Bearer {access_token}", "Content-Type":"application/x-www-form-urlencoded"}
url = f"https://datastudio.googleapis.com/v1/assets/{assetName}/permissions"
permissions = requests.get(url, headers=headers)
permissions.text
我使用上面的Python代码来访问looker studio API。
service_account
是json关键对象。
它回来了
{'error': {'code': 403, 'message': 'The caller does not have permission', 'status': 'PERMISSION_DENIED'}}
其次,我尝试使用OAuth2客户端,
但每次登录google都会出现
Error 400: invalid_scope
。
我认为可能是我没有添加范围“https://www.googleapis.com/auth/datastudio”
来自 OAuth 同意屏幕,但我无法做到这一点,即使我确实启用了 Looker Studio API。
我尝试通过网络搜索收集更多信息,
但我找不到解决方案或其他方法,所以我在这里问。
因此我需要在参考中发出 HTTP 请求的权限,
https://developers.google.com/looker-studio/integrate/api/reference/permissions/addMembers
这里有同样的问题,遵循 OAuth2 客户端上的文档没有帮助,因为域范围的委派不能解决问题。