【发布时间】:2021-03-17 10:10:58
【问题描述】:
我正在尝试用 Python 编写脚本以从特定文件夹中获取新电子邮件并将附件保存到共享驱动器以上传到数据库。 Power Automate 可以工作,但保存附件的文件大小限制仅为 20 MB。我能够验证令牌,但在尝试获取电子邮件时出现以下错误:
未经授权的网址。 令牌不包含权限,或者权限无法理解。
我已包含用于连接到 Microsoft Graph 的代码。
(凭据和tenant_id 在我的代码中是正确的,出于显而易见的原因将它们取出
from O365 import Account, MSOffice365Protocol, MSGraphProtocol
credentials = ('xxxxxx', 'xxxxxx')
protocol = MSGraphProtocol(default_resource='reporting.triometric@xxxx.com')
scopes_graph = protocol.get_scopes_for('message_all_shared')
scopes = ['https://graph.microsoft.com/.default']
account = Account(credentials, auth_flow_type='credentials', tenant_id="**", scopes=scopes,)
if account.authenticate():
print('Authenticated')
mailbox = account.mailbox(resource='reporting.triometric@xxxx.com')
inbox = mailbox.inbox_folder()
for message in inbox.get_messages():
print(message)
我已经通过 Azure 配置了权限,以包括所有必要的“邮件”委托。
我的脚本的其余部分非常适合将文件上传到数据库。目前,附件必须每天多次手动保存在共享驱动器上,然后运行脚本进行上传。有没有我遗漏的步骤?任何见解将不胜感激!
【问题讨论】:
-
可以分享一下您在应用注册时添加的权限截图吗?
-
我已经为这个应用注册添加了权限设置,谢谢观看!
-
您好,您查看我的回答了吗?有更新吗?
-
感谢艾伦的帮助!我的组织不允许“应用程序”菜单中的任何权限,因此我已将 auth_flow_type 更改为“授权”,因此令牌是通过网络发布的,但仍在等待 IT 团队批准这些权限。
-
如果您使用
Authorization,这意味着它正在使用身份验证代码流。在这种情况下,委派的权限是正确的。我会更新答案。如果它有帮助,您可以将其标记为已接受。谢谢。
标签: python azure azure-active-directory o365-flow