【发布时间】:2019-07-29 18:32:58
【问题描述】:
我发现了许多使用 Office365-REST-Python-Client 的示例,但是,它们都没有正确获取访问令牌。我已经在 Azure 门户下注册了一个应用程序,使用“应用程序权限”授予它 API 权限,创建了一个秘密,并在我的设置字典中使用了 client_secret 和 client_id 以在下面的代码中使用。
def read_folder_and_files(context, list_title):
"""Read a folder example"""
list_obj = context.web.lists.get_by_title(list_title)
folder = list_obj.root_folder
context.load(folder)
context.execute_query()
print("List url: {0}".format(folder.properties["ServerRelativeUrl"]))
files = folder.files
context.load(files)
context.execute_query()
for cur_file in files:
print("File name: {0}".format(cur_file.properties["Name"]))
folders = context.web.folders
context.load(folders)
context.execute_query()
for folder in folders:
print("Folder name: {0}".format(folder.properties["Name"]))
if __name__ == '__main__':
ctx_auth = AuthenticationContext(url=settings['url'])
if ctx_auth.acquire_token_for_app(client_id=settings['client_credentials']['client_id'],
client_secret=settings['client_credentials']['client_secret']):
ctx = ClientContext(settings['url'], ctx_auth)
read_folder_and_files(ctx, "Documents")
# read_folder_and_files_alt(ctx, "Documents")
# upload_file_into_library(target_library, name, content)
# download_file(ctx)
else:
print(ctx_auth.get_last_error())
当我运行上述代码时,出现以下错误:
File "/usr/local/lib/python3.7/site-packages/office365/runtime/auth/acs_token_provider.py", line 76, in get_authorization_header
return 'Bearer {0}'.format(self.access_token["access_token"])
KeyError: 'access_token'
我的最终目标是使用 python 数据管道中的元数据将文件上传到 Sharepoint 文档库。 Sharepoint 不在本地托管,包含在我们的 365 许可证中。
亲切的问候
【问题讨论】:
标签: python sharepoint sharepoint-online document-library