通过REST响应Office 365事件邀请

时间:2015-06-08 14:13:26

标签: ios objective-c api rest office365

我目前正致力于添加功能,以允许用户通过其REST API响应Office 365事件邀请(接受/可能/拒绝)。但是,我并不完全确定开发人员应该如何通过API使用此功能。

例如,Google有一个attendeesOmitted标记,您可以设置为true,然后在其正常事件更新端点上传递更新的被邀请者。

但是,我在Office 365的API上看不到任何此功能。我尝试了以下代码来更新邀请,但它对用户的状态没有影响(尽管它确实返回了200成功消息):

    NSMutableDictionary *params = [ActivityCommon parametersFromEvent:event type:service dateOnly:TRUE]; //Don't need all params
    [params setObject:@[@{@"EmailAddress": @{@"Name": invitee[@"Name"],
                                             @"Address": invitee[@"Email"]},
                          @"Status": @{@"Response": @"Accepted"},
                          @"Type": @"Required"}] forKey:@"Attendees"];

    [networkMgr PATCH:[NSString stringWithFormat:@"events/%@", identifier] parameters:params success:nil failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"%@", operation.responseObject);
    }];

有没有人有这方面的经验?任何见解都会非常感激!

1 个答案:

答案 0 :(得分:3)

会议邀请将在用户的收件箱中显示为Message。您可以使用Mail API来访问它。在大多数情况下,它看起来像一个普通的电子邮件,但它有一些额外的属性。

  "MeetingMessageType": "MeetingRequest",
  "Event@odata.navigationLink": "https://outlook.office365.com/api/v1.0/Users('user@domain.com')/Events('AAMkADRm...')"

通过使用Event@odata.navigationLink属性的值,您可以使用Calendar API访问用户日历上的相应事件。

在活动中,您可以使用AcceptDeclineTentativelyAccept操作。 (有关完整声明,请参阅https://outlook.office365.com/api/v1.0/ $元数据。)

例如,如果您想接受会议邀请,您可以执行以下操作:

POST /Me/Events('AAMkADRm...')/Accept

{
  "Comment": "I will be there!",
  "SendResponse": true
}

组织者收到带有“我会在那儿!”文本的接受信息。