【发布时间】:2018-10-18 11:08:20
【问题描述】:
我一直在使用 curl 和 Outlook REST API v1.0(带有基本身份验证)在 Outlook 日历中创建日历事件。基本身份验证即将被弃用,因此我现在尝试使用 OAuth 2 迁移到 Microsoft Graph v1.0。我已经取得了一些进展,但在运行 POST 以创建事件时卡在“ErrorAccessDenied”。这是我到目前为止所做的:
在此处注册我的应用程序(curl):https://apps.dev.microsoft.com/#/appList,将应用程序权限设置为 Calendars.ReadWrite(并且,为了更好地衡量,也将委托权限设置为 Calendars.ReadWrite。)
使用上面第 1 步中的客户端/应用程序 ID 和客户端密码/密码,我可以使用以下命令获取访问令牌:
curl -X POST -k -d "grant_type=client_credentials&client_id=[ApplicationID]&client_secret=[Password]&resource=https%3A%2F%2Fgraph.microsoft.com%2F" https://login.microsoftonline.com/[TenantID]/oauth2/token
- 然后我尝试使用以下命令创建事件,但得到以下 ErrorAccessDenied 错误:
curl.exe -k -o "C:\Temp\output.txt" -X POST -H "Content-Type:application/json" -H "Authorization: Bearer [TOKEN]" -d @"C: \Temp\eventDetails.json" https://graph.microsoft.com/v1.0/users/[UserPrincipalName]/calendars/[CalendarID]/events?$select=Id,lastModifiedDateTime
{ “错误”: { "code": "ErrorAccessDenied", "message": "访问被拒绝。检查凭据并重试。", “内部错误”:{ “请求 ID”:“38b802b9-08b9-4e0b-8f91-66ef56c459f8”, “日期”:“2018-10-17T01:08:22” } } }
除了将已注册应用的应用程序权限设置为 Calendars.ReadWrite(上面的第 1 步)之外,我不知道如何允许访问。任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
据我了解,我们无法为用户创建事件,只能为自己创建。
-
这个问题不是针对
curl,所以我会删除那个标签。
标签: oauth-2.0 office365 microsoft-graph-api outlook-restapi