我正试图从我的个人高级前景帐户获取日历事件。这不是工作帐户。 我有Office 365订阅。使用相同的方法,我已经设置了Azure actuve目录,在其中添加了python Web应用程序,并授予了该应用程序所有必需的权限。通过网络应用访问API时,我可以获取个人资料详细信息,用户和所有用户,但无法获取与事件,日历等相关的数据。 我遇到此错误-“消息”:“租户guid的租户guid \ u00 ******* b5d- * 9-4b -b 1-c 5c *** 2ec8 \ u0027不存在。”
我在msdn以及stackoverflow上查看了许多解决方案,但是每个人都被告知要获得一个我已经使用过的高级帐户,但是问题仍然没有解决。
请帮助解决该问题。提前谢谢:)
我附上 app.config 文件的副本,以供您参考。
import os
CLIENT_SECRET = "client secret key"
AUTHORITY = "https://login.microsoftonline.com/tenant id"
CLIENT_ID = "client id"
REDIRECT_PATH = "/getAToken"
ENDPOINT =ENDPOINT = 'https://graph.microsoft.com/v1.0/users/{my id}/events
# I also tried 'ENDPOINT = ' 'https://graph.microsoft.com/v1.0/users/{my id}/calendar/events''
SCOPE = ["User.ReadBasic.All"]
SESSION_TYPE = "filesystem" # So token cache will be stored in server-side session
答案 0 :(得分:1)
使用python的'Oauth'类传递您的所有令牌和ADD详细信息,例如客户端ID,客户端密码等。 像这样- (注意配置文件包含我上面提到的所有详细信息。)
OAUTH = OAuth(APP)
MSGRAPH = OAUTH.remote_app(
'microsoft',
consumer_key=config.CLIENT_ID,
consumer_secret=config.CLIENT_SECRET,
request_token_params={'scope': config.SCOPES},
base_url=config.RESOURCE + config.API_VERSION + '/',
request_token_url=None,
access_token_method='POST',
access_token_url=config.AUTHORITY_URL + config.TOKEN_ENDPOINT,
authorize_url=config.AUTHORITY_URL + config.AUTH_ENDPOINT)
我的配置文件:
CLIENT_ID = 'put here'
CLIENT_SECRET = 'put here'
REDIRECT_URI = 'http://localhost:5000/login/authorized'
AUTHORITY_URL = 'https://login.microsoftonline.com/common'
AUTH_ENDPOINT = '/oauth2/v2.0/authorize'
TOKEN_ENDPOINT = '/oauth2/v2.0/token'
RESOURCE = 'https://graph.microsoft.com/'
API_VERSION = 'v1.0'
SCOPES = ['User.Read', 'Mail.Send', 'Files.ReadWrite','Calendars.Read', 'Calendars.ReadWrite']
现在您可以像这样调用get事件:
eventResponse = MSGRAPH.get('me/events',headers=request_headers()) #request_headers() return all the requeried headers
print(eventResponce.data)