- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只想从域(或根站点?)内名为 prod 的组(或站点?)内名为 dataacq 的列表中提取数据 tenant.sharepoint.com (或 tenant-my.sharepoint.com ?)并将其放入 DataFrame 中。
我对通过 app.acquire_token_silent
获取的 token 有疑问。
微软文档难以理解,因为它太重了,而且几乎没有可行的食谱/工作示例(从我的无数问号可以看出)。此外,他们似乎希望将所有 API 集中到 graph.microsoft.com
中,但没有警告 tenant.sharepoint.com/sites/prod/_api/
即将停产。
我不认为我需要所有这些,但我不确定。我只想读一份 list 。那么只需要 Microsoft Graph > Sites.read.All
吗?或者是 Sharepoint > Allsites.Read
?我知道我同时拥有“仅限应用程序”权限和“登录用户”权限。
我确实下载了“快速入门”示例,并且阅读了 https://msal-python.readthedocs.io/en/latest/ 。尽管使用app.acquire_token_silent
成功提取了 token ,但使用返回的 token 总是会抛出一些错误,无论范围
('https://microsoft.sharepoint-df.com/. default' 或 'https://graph.microsoft.com/.default')或 API 域(graph.microsoft.com
或 tenant.sharepoint.com
) 我是使用到请求中:
{'error_description':
"Exception of type 'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' was thrown."}
{'error': {'code': 'AccessDenied',
'message': 'Either scp or roles claim need to be present in the token.',
'innerError': {'date': '2021-02-19T08:05:16',
'request-id': '01efc071-18e6-4006-8780-f771419ebe3e',
'client-request-id': '01efc071-18e6-4006-8780-f771419ebe3e'}}}
另一方面,有一个 API 开发人员测试门户。当我将此门户中给出的 token 复制到我的 python 代码中时,范围/API 域都可以工作。
这例如一个示例,适用于从门户复制和粘贴 token ,但不适用于 app.acquire_token_silent
方法颁发的 token :
r = requests.get( # Use token to call downstream service
fr'https://graph.microsoft.com/v1.0/sites/root:/sites/prod:/lists/{list_id}/items?expand=fields(select=Created))',
headers={'Authorization': 'Bearer ' + result['access_token'],},)
所以问题出在这个 app.acquire_token_silent
方法或配置文件上。但返回的响应似乎没问题:
{'token_type': 'Bearer',
'expires_in': 3599,
'ext_expires_in': 3599,
'access_token': '...'}
我错过了什么?
最佳答案
根据您在描述中提供的代码r = requests.get.....
,看来您使用microsoft graph api来实现它。如果您使用此 api,则应使用 https://graph.microsoft.com/.default
作为 scope
来获取访问 token 。您可以将访问 token 复制到此 page ,解码token并检查其中是否包含权限。
并且根据您注册的应用程序的“API权限”选项卡的屏幕截图,还请对权限Sites.Read.All
进行管理员同意操作,尽管它显示不需要管理员同意。
==================================更新======= =======================
似乎方法 acquire_token_silent()
通过客户端凭据流获取访问 token 。因此,我们应该在注册的应用程序中添加“应用程序”类型权限,而不是“委托(delegate)”类型权限。
关于python - 访问共享点列表时 token 不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66329759/
MVC3 中的助手是否在 Controller 和 View 中使用? 助手是放置常用 Controller 方法的正确位置吗? 我想创建一个通用方法来获取数据库中的所有子子 ID,并确保它位于正确的
有人可以阐明这两者之间的区别吗,因为它们存在于执行上下文中?我很难阅读 ECMA 262 v 5规范并清楚地看到差异。 谢谢你, 最佳答案 两者都是执行上下文的组件(相同类型),但它们有不同的用途(f
我是一名优秀的程序员,十分优秀!