Microsoft graph api &引用;访问群体声明值对于当前资源无效;在Microsoft Graph Client API中为附件使用ChunkedUploadProvider时

Microsoft graph api &引用;访问群体声明值对于当前资源无效;在Microsoft Graph Client API中为附件使用ChunkedUploadProvider时,microsoft-graph-api,outlook-restapi,microsoft-graph-sdks,microsoft-graph-files,Microsoft Graph Api,Outlook Restapi,Microsoft Graph Sdks,Microsoft Graph Files,我正在尝试使用以下代码,但收到“消息:访问群体声明值对于当前资源无效。访问群体声明为“”,请求url为…” 我在provider.GetUploadChunkRequests()上获得它;请致电: AttachmentItem attachmentItem= new AttachmentItem { Name = [Name], AttachmentType = AttachmentType.File, S

我正在尝试使用以下代码,但收到“消息:访问群体声明值对于当前资源无效。访问群体声明为“”,请求url为…”

我在provider.GetUploadChunkRequests()上获得它;请致电:

AttachmentItem attachmentItem= new AttachmentItem
            { 
                Name = [Name],
                AttachmentType = AttachmentType.File,
Size = [Size]
            };

var session = graphClient.Users[USEREMAIL].Messages[MESSAGEID].Attachments.CreateUploadSession(attachmentItem).Request().PostAsync().Result;
            var stream = new MemoryStream(BYTEARRAY);
            var maxSizeChunk = DEFAULT_CHUNK_SIZE;
            var provider = new ChunkedUploadProvider(session, graphClient, stream, maxSizeChunk);
            var chunkRequests = provider.GetUploadChunkRequests();
(我正在使用graphClient成功发送电子邮件,还使用它使用uploadSession方法上载大文件)

从开始:

您很可能会因为使用chunkedUploadOrVider而不是使用FileUploadTask来上载附件而收到错误,因为附件设置了Auth头以导致您收到的错误

要使用文件上载任务,请执行以下步骤

首先创建一个上传会话,并将其移交给任务,如图所示

// Create task
var maxSliceSize = 320 * 1024; // 320 KB - Change this to your chunk size. 4MB is the default.
LargeFileUploadTask<FileAttachment> largeFileUploadTask = new LargeFileUploadTask<FileAttachment>(uploadSession, stream, maxSliceSize);
//创建任务
var maxSliceSize=320*1024;//320 KB-将其更改为块大小。4MB是默认值。
LargeFileUploadTask LargeFileUploadTask=新的LargeFileUploadTask(uploadSession,stream,maxSliceSize);
创建上载监视器(可选)

//设置进度监视
i进度=新进度(进度=>
{
WriteLine($“上载的{stream.Length}字节中的{progress}字节”);
});
服务只返回可以从结果对象读取的位置URI,如下所示

UploadResult<FileAttachment> uploadResult = null;
try
{
    uploadResult = await largeFileUploadTask.UploadAsync(progress);
    if (uploadResult.UploadSucceeded)
    {
        Console.WriteLine(uploadResult.Location);//the location of the object
    }
}
catch (ServiceException e)
{
    Console.WriteLine(e.Message);
}
UploadResult UploadResult=null;
尝试
{
uploadResult=等待largeFileUploadTask.UploadAsync(进度);
if(uploadResult.UploadSuccessed)
{
Console.WriteLine(uploadResult.Location);//对象的位置
}
}
捕获(服务异常e)
{
控制台写入线(e.Message);
}
UploadResult<FileAttachment> uploadResult = null;
try
{
    uploadResult = await largeFileUploadTask.UploadAsync(progress);
    if (uploadResult.UploadSucceeded)
    {
        Console.WriteLine(uploadResult.Location);//the location of the object
    }
}
catch (ServiceException e)
{
    Console.WriteLine(e.Message);
}