ms 图形调用列出因“InvalidAuthenticationToken”而失败的笔记本

问题描述 投票:0回答:1

以下代码失败并显示“InvalidAuthenticationToken”

{"error":{"code":"InvalidAuthenticationToken","message":"Access token validation failure. Invalid audience."

我确定我已在天蓝色广告中正确注册应用程序。

import urllib.parse
import requests
from requests_toolbelt.utils.dump import dump_all

tenant_id = "..."
client_secret = "..."
client_id = ".."
scope = "api://<guidfromzurehere/.default"

url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
data = {
    "client_id": client_id,
    "scope": scope,
    "client_secret": client_secret,
    "grant_type": "client_credentials"
}
r = requests.post(url, data=data, headers={"Content-Type": "application/x-www-form-urlencoded"})
print(dump_all(r).decode('utf8'))
print(r.json()['access_token'])

url = "https://graph.microsoft.com/v1.0/users/myemailaddress/onenote/notebooks"
headers = {"Authorization": "Bearer " + r.json()['access_token']}
r = requests.get(url, headers=headers)
print(dump_all(r).decode('utf8'))

我的范围错误吗? 我尝试了“https://graph.microsoft.com/.default”的范围,但出现许可证错误。有建议吗?

python microsoft-graph-api
1个回答
0
投票

经过多次尝试和错误后解决了这个问题,导致其他错误消息导致我找到这个和这个

最后,我得到了一个解决方案,可以根据委托权限的要求使用 OAuth 代码授予流程,并使用 /consumers 登录而不是像大多数 GraphAPI 文档所说的那样使用租户 ID,无需许可即可工作。

© www.soinside.com 2019 - 2024. All rights reserved.