makeEwsRequestAsync выдает ошибку для календаря делегатов - PullRequest
0 голосов
/ 19 сентября 2019

Я сейчас работаю над надстройкой Office 365 и просто пытаюсь использовать функцию office js для календарей делегатов.некоторые функции работают нормально, но когда я пытаюсь использовать метод makeEwsRequestAsync, он терпит неудачу и дает ErrorAcessDenied как код ошибки и сообщение, которое я получаю как Расширение Office не имеет прав доступа к любым другим почтовым ящикам.почтовый ящик, предоставленный в контексте пользователя

Я также пробовал бета-версию Office JS, но не повезло.

Вот как я использую функцию

var callGetItem = function(id) {
    mailbox.makeEwsRequestAsync(getItemRequest(id), function(asyncResult) {
        var parser = new X2JS();
        var json = parser.xml_str2json(asyncResult.value);
        getItemJson = json.Envelope.Body.GetItemResponse.ResponseMessages;
        logMessage("getItem request - call number " + asyncCount);
        //
        if (getItemJson.GetItemResponseMessage._ResponseClass !== "Error") {
            logMessage("getItem request success");
            changeKey = getItemJson.GetItemResponseMessage.Items.CalendarItem.ItemId._ChangeKey;
            logMessage("getItem request ChangeKey: " + changeKey, true);
            checkRecurrencePattern(getItemJson.GetItemResponseMessage.Items.CalendarItem);
            if (customPropsString === void(0) || customPropsString == "")
            {
                if (getItemJson.GetItemResponseMessage.Items.CalendarItem.ExtendedProperty)
                {
                    logMessage("Custom properties value: " + getItemJson.GetItemResponseMessage.Items.CalendarItem.ExtendedProperty.Value.toString());
                    saveCustomPropertyJavaScript(getItemJson.GetItemResponseMessage.Items.CalendarItem.ExtendedProperty.Value.toString());
                }

            }
        } else {
            logMessage("getItem request error");
            asyncCount++;
            setTimeout(function() {
                callGetItem(id);
            }, 5000);
        }
    });
};


var getItemRequest = function(id) {
    var request =
        '<?xml version="1.0" encoding="utf-8"?>' +
        '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
        '               xmlns:xsd="http://www.w3.org/2001/XMLSchema"' +
        '               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
        '               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
        '  <soap:Header>' +
        '    <RequestServerVersion Version="Exchange2016" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" soap:mustUnderstand="0" />' +
        '  </soap:Header>' +
        '  <soap:Body>' +
        '    <GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">' +
        '      <ItemShape>' +
        '        <t:BaseShape>IdOnly</t:BaseShape>' +
        '        <t:AdditionalProperties>' +
        '            <t:FieldURI FieldURI="item:Subject"/>' +
        '            <t:FieldURI FieldURI="item:Body"/>' +
        '            <t:FieldURI FieldURI="calendar:Organizer"/>' +
        '            <t:FieldURI FieldURI="calendar:Resources"/>' +
        '            <t:FieldURI FieldURI="calendar:IsRecurring"/>' +
        '            <t:FieldURI FieldURI="calendar:Recurrence"/>' +
        '            <t:FieldURI FieldURI="calendar:FirstOccurrence"/>' +
        '            <t:FieldURI FieldURI="calendar:LastOccurrence"/>' +
        '            <t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="DDL Reference" PropertyType="String" />' +
        '        </t:AdditionalProperties>' +
        '      </ItemShape>' +
        '      <ItemIds><t:ItemId Id="' + id + '"/></ItemIds>' +
        '    </GetItem>' +
        '  </soap:Body>' +
        '</soap:Envelope>';
    return request;
};

Я использую инсайдерскую версию outlook со сборкой 16.0.12112.20000 32-битная версия.

Кто-нибудь знает об этой проблеме или любом обходном пути, или сообщите мне, если я что-то упустил.

...