node.js - 使用 Microsoft Graph API 创建 Outlook 日历事件时未添加与会者

标签 node.js microsoft-graph-api microsoft-graph-calendar

我正在使用 Microsoft 的 Graph API 和我的 Node.js 应用程序创建 Outlook 日历事件。按照此文档/示例链接:https://learn.microsoft.com/en-us/previous-versions/office/office-365-api/api/version-2.0/calendar-rest-operations#CreateEvents

我的代码:

var options = {
    method: 'POST',
    url: 'https://graph.microsoft.com/v1.0/me/calendar/events',
    headers: {
        'Authorization': 'Bearer ' + access_token,
        'Content-Type': 'application/json'
    },
    body: {
        "subject": "Node.js outlook test",
        "body": {
            "contentType": "HTML",
            "content": "Test event created from node.js"
        },
        "start": {
            "dateTime": "2019-03-25T12:00:00",
            "timeZone": "Pacific Standard Time"
        },
        "end": {
            "dateTime": "2019-03-25T14:00:00",
            "timeZone": "Pacific Standard Time"
        },
        "isAllDay": false,
        "location": {
            "displayName": null
        },
        "attendees": [{
            "emailAddress": {
                "address": "my-other-email@gmail.com",
                "name": "Adele Vance"
            },
            "type": "required"
        }]
    },
    json: true
};

request(options, function (err, response, body) {
    if (err) throw new Error(err);
    res.send(body);
});

事件已在 Outlook 日历中创建,但没有与该事件关联的参加者。

创建事件后我得到以下响应

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('my_hotmail_email%40hotmail.com')/calendar/events/$entity",
    "@odata.etag": "W/\"69zWaBpmuEqq9NMFBSWV6QACU8X/gQ==\"",
    "id": "AQMkADAwATYwMAItYzA3My1mNzUxLTAwAi0wMAoARgAAAwh1Hv4SptVMlm3BaW7y4g0HAOvc1mgaZrhKqvTTBQUAJZXpAAACAQ0AAADr3NZoGma4Sqr00wUFACWV6QACU7Qp1gAAAA==",
    "createdDateTime": "2019-05-02T09:12:12.0349227Z",
    "lastModifiedDateTime": "2019-05-02T09:12:12.0789547Z",
    "changeKey": "69zWaBpmuEqq9NMFBSWV6QACU8X/gQ==",
    "categories": [],
    "originalStartTimeZone": "Pacific Standard Time",
    "originalEndTimeZone": "Pacific Standard Time",
    "iCalUId": "040000008200E00074C5B7101A82E0080000000077C77520C700D5010000000000000000100000001CB042E1D2C57341BA3D3799F9853B63",
    "reminderMinutesBeforeStart": 15,
    "isReminderOn": true,
    "hasAttachments": false,
    "subject": "Node.js outlook test",
    "bodyPreview": "Test event created from node.js",
    "importance": "normal",
    "sensitivity": "normal",
    "isAllDay": false,
    "isCancelled": false,
    "isOrganizer": true,
    "responseRequested": true,
    "seriesMasterId": null,
    "showAs": "busy",
    "type": "singleInstance",
    "webLink": "https://outlook.live.com/owa/?itemid=AQMkADAwATYwMAItYzA3My1mNzUxLTAwAi0wMAoARgAAAwh1Hv4SptVMlm3BaW7y4g0HAOvc1mgaZrhKqvTTBQUAJZXpAAACAQ0AAADr3NZoGma4Sqr00wUFACWV6QACU7Qp1gAAAA%3D%3D&exvsurl=1&path=/calendar/item",
    "onlineMeetingUrl": null,
    "recurrence": null,
    "responseStatus": {
        "response": "organizer",
        "time": "0001-01-01T00:00:00Z"
    },
    "body": {
        "contentType": "html",
        "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nDoes mid month work for you?\r\n</body>\r\n</html>\r\n"
    },
    "start": {
        "dateTime": "2019-03-25T12:00:00.0000000",
        "timeZone": "Pacific Standard Time"
    },
    "end": {
        "dateTime": "2019-03-25T14:00:00.0000000",
        "timeZone": "Pacific Standard Time"
    },
    "attendees": [
        {
            "type": "required",
            "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
            },
            "emailAddress": {
                "name": "My Name",
                "address": "my_hotmail_email@hotmail.com"
            }
        }
    ],
    "organizer": {
        "emailAddress": {
            "name": "My Name",
            "address": "my_hotmail_email@hotmail.com"
        }
    }
}

正如您在与会者数组中看到的那样,它提供了我自己的 hotmail/outlook 帐户,但没有提供请求中包含的 gmail 帐户。

我的 Gmail 帐户也没有收到任何日历邀请。知道可能出了什么问题吗?

enter image description here

最佳答案

问题是您的 Outlook/Hotmail 帐户知道您的 GMail 地址。检查是否属于这种情况的最简单方法是使用您的 @gmail.com 地址但您的 Outlook/Hotmail 密码登录 Outlook.com。如果您的 Microsoft 帐户将您的 GMail 地址列为有效别名,它将对您进行身份验证,就像您输入了主地址一样。

由于它将您的 GMail 地址视为别名,Outlook 会自动将 GMail 别名换成您的“默认”地址(您的 @outlook.com 地址)。

尝试使用新的 GMail 地址,它应该可以正常工作。

关于node.js - 使用 Microsoft Graph API 创建 Outlook 日历事件时未添加与会者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55949346/

相关文章:

python - 在python-sell中运行python脚本时,Python OpenCv读取错误

azure - 通过 Web API 而不是 Graph API 重置 Azure AD 密码

python - 如何使用 Microsoft Graph 覆盖上传到 SharePoint 的文件

c# - 回复 bot-authentication-msgraph 代码中的地址配置问题

与 Intel 的 SSE4.2 硬件实现兼容的 Javascript CRC32C 实现

node.js - Snowflake DB 与 Node.js 驱动程序的连接

node.js - Passport + Socket.io 获取登录用户 ID

azure - 使用 graph api createEvent 创建事件的发布请求抛出 "OrganizationFromTenantGuidNotFound"错误

microsoft-graph-calendar - Microsoft Graph - 日历 View 过滤器不区分大小写 tolower