我编写了一个简单的python脚本来获取公司租户中用户的收件箱。该特定用户的许可证是Office F3。这是我的代码:
import O365
from O365 import Account, Connection, MSGraphProtocol, Message
scopes=['basic', 'message_all']
credentials=('user@domain', 'password')
account = Account(credentials = credentials)
if not account.is_authenticated: # will check if there is a token and has not expired
account.authenticate(scopes=scopes)
account.connection.refresh_token()
mailbox = account.mailbox()
inbox = mailbox.get_folder(folder_name='Inbox')
child_folders = inbox.get_folders(25)
for folder in child_folders:
print(folder.name, folder.parent_id)
for message in inbox.get_messages(5):
if message.subject == 'test':
print(message.body)
当我运行它时,它告诉我复制并粘贴一个网址,当我点击它时,我会得到以下错误:
当我运行代码时CMD提示
AADSTS700016:在目录"y"中找不到标识符为"x"的应用程序。如果租户的管理员没有安装应用程序,或者租户中的任何用户都没有同意,则可能会发生这种情况。您可能已将身份验证请求发送给错误的租户。
有人知道怎么修吗?
答案来得晚了几个月,但如果有人有同样的问题,他很乐意在这里找到答案。
您的错误消息是通过Graph API的o3 65的默认登录链接。(URL错误(%2F=/(,可能是因为Jupyter笔记本的过时版本?(
若要保持登录状态,我建议将"offline_access"指定为作用域。这将创建一个令牌,允许在没有登录链接的情况下进行身份验证。