Как использовать MSGraphClient в надстройке Outlook office, созданной с помощью TypeScript

#typescript #microsoft-graph-api #outlook-addin #sharepoint-online

Вопрос:

//Обновлен Код.

 /*
 * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
 * See LICENSE in the project root for license information.
 */

// images references in the manifest
import "../../assets/icon-16.png";
import "../../assets/icon-32.png";
import "../../assets/icon-80.png";

/* global $, document, Office */
import { MSGraphClient } from '@microsoft/sp-http';
import { Client } from "@microsoft/microsoft-graph-client";
import { getGraphData } from "./../helpers/ssoauthhelper";

Office.onReady((info) => {
  if (info.host === Office.HostType.Outlook) {
    // (document).ready
    $(function () {
      getGraphData();
      $("#saveAttachments").on("click", async function() {
        let checked: number = $(".atchCheckBoxes > input[type=checkbox]:checked").length;
        for await (const attachment of Office.context.mailbox.item.attachments) {
          Office.context.mailbox.item.getAttachmentContentAsync(attachment.id, (asyncResult) => {
            saveAttachment(asyncResult.value.content, attachment.name);
            // if (attachment.size > 4 * 1024 * 1024) {
            // }
            // else{
            // }
          });
        }
      });
    });
  }
});

async function saveAttachment(mimeStream: string, fileName: string): Promise<string> {
  // let graphClient: MSGraphClient = new MSGraphClient();
  // let graphClient: MSGraphClient;
  // var graphClient: Client;

  // here "graphClient" variable is undefined when call this function on "Save Attachment(s)" button click
  // how can save attachments read from email and save in SharePoint Online Document Library
  // if there is any alternative way please suggest me.


  var graphClient: MSGraphClient;
  const odApi = `/me/drive/root:/${fileName}:/content`;
  const saveResult = await graphClient.api(odApi).put(mimeStream);
  console.log(`Save Attachment result for ${fileName}: `, saveResult);
  return saveResu<
} 

введите описание изображения здесь

Надеюсь, у вас, ребята, все хорошо, мне нужна помощь. В надстройке outlook, созданной TypeScript, я использую api graph для загрузки вложений в библиотеку документов SharePoint Online. Я импортирую «MSGraphClient», как «импорт { MSGraphClient } из» @microsoft/sp-http», но всегда получаю «MSGraphClient» неопределенным. Пожалуйста, посмотрите фотографии ниже.Пожалуйста, помогите мне в этомвведите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. Пожалуйста, опубликуйте код в текстовом формате, чтобы мы могли проверить и выяснить, что вы делаете неправильно. Судя по внешнему виду graphClient , это ноль. Пожалуйста, также проверьте Создание экземпляра клиента

2. Привет @Danstan, я обновил сообщение с кодом. не могли бы вы, пожалуйста, проверить и посоветоваться со мной?