Microsoft graph api SitePages列表驱动器中驱动器项的上载失败

Microsoft graph api SitePages列表驱动器中驱动器项的上载失败,microsoft-graph-api,sharepoint-online,azure-ad-graph-api,microsoft-graph-sdks,Microsoft Graph Api,Sharepoint Online,Azure Ad Graph Api,Microsoft Graph Sdks,与sharepoint网站中的SitePage列表关联的驱动器中的所有驱动器站点上载失败 图形API请求: UploadSession UploadSession=GraphCLient.Sites[{SiteId}].Drives[{SitePages列表的DriveId}]。Items[{DriveFolderID}].ItemWithPath(driveItem.Item.Name).CreateUploadSession().Request().PostAsync().Result;

与sharepoint网站中的SitePage列表关联的驱动器中的所有驱动器站点上载失败

图形API请求:

UploadSession UploadSession=GraphCLient.Sites[{SiteId}].Drives[{SitePages列表的DriveId}]。Items[{DriveFolderID}].ItemWithPath(driveItem.Item.Name).CreateUploadSession().Request().PostAsync().Result;
上载会话将成功创建,但chunkuploadprovider给出错误

错误响应:代码:accessDenied消息:调用方没有 执行该操作的权限。内部误差

代码段:

private void UploadItem(OneDriveJsonStructure driveItem)
{
尝试
{
MemoryStream memStream=(MemoryStream)driveItem.Content;
字节[]缓冲区=memStream.ToArray();
DriveItem=null;
使用(System.IO.MemoryStream ms=新的System.IO.MemoryStream(缓冲区))
{
UploadSession UploadSession=this.\u SharepointOperations.\u GraphCLient.Sites[this.\u SiteId].Drives[this.\u DriveId].Items[this.\u DriveFolderId].ItemWithPath(driveItem.Item.Name).CreateUploadSession().Request().PostAsync().Result;
var provider=new ChunkedUploadProvider(上传会话,this.\u SharepointOperations.\u GraphCLient,memStream);
var chunkRequests=provider.GetUploadChunkRequests();
var readBuffer=新字节[buffer.Length];
var trackedExceptions=新列表();
DriveItemResult=null;
foreach(chunkRequests中的var请求)
{
//发送区块请求
var result=provider.GetChunkRequestResponseAsync(请求、读取缓冲区、trackedExceptions);
if(result.uploadsuccessed)
{
itemResult=result.ItemResponse;
item=result.ItemResponse;
}
}
if(itemResult==null)
{
UploadChunkResult=null;
//请重试上载。。。
foreach(chunkRequests中的var请求)
{
//发送区块请求
结果=provider.GetChunkRequestResponseAsync(请求、读取缓冲区、trackedExceptions);
}
item=result.ItemResponse;
}
}
item.Permissions=driveItem.item.Permissions;
给予许可(项目);
从Azure AD向客户端应用程序提供权限:

图形权限:

Sharepoint权限:

即使在所有这些权限之后,它仍会显示以下错误消息:

“调用方没有执行该操作的权限”

执行此操作需要哪些权限?


上载其他驱动器的driveItems成功执行。

既然上载其他驱动器的driveItems成功执行,您的代码应该正常

因此,问题的关键在于用户的SharePoint权限

请检查用户帐户是否可以将文件上载到SharePoint网站的目标文件夹中

如果用户没有这样做的权限,则需要使用管理员帐户向用户授予编辑权限

详细步骤:

  • 在文件夹名称旁边,单击省略号…
  • 在文件弹出窗口中,单击共享
  • 在共享对话框中,单击与共享,然后单击 高级
  • 单击停止继承权限
  • 将用户添加到具有“编辑”或“贡献”权限的SharePoint组中 权限。(如果不想修改默认SharePoint。) 组,仅创建一个新组)
  • 快速方法:与用户共享此文件夹(具有编辑权限)。

    在文件夹名称旁边,单击省略号…。在文件弹出窗口中,单击共享。在共享对话框中,按照屏幕截图进行操作。


    更新:


    请注意,我们无法将任何文档上载到网站页面文档库。也不支持使用API。

    我尝试了您的步骤,但对我无效。仍然会出现相同的错误。此外,我正在使用仅应用程序身份验证来验证我的graphclient。因此,我认为用户权限不会产生任何影响。用户帐户可以上载吗SharePoint网站上的文件?转到yourdomain.SharePoint.com导航到目标文件夹/驱动器进行测试。用户帐户可以上载SharePoint网站上其他文档库上的文件,但不能上载SitePages文档库(它是系统生成的文档库类型列表)@SubhanuSharma我想我知道原因。对于普通的文档库,您可以使用我上面提到的方法授予上载权限。但是您不能将任何文档上载到SitePages文档库。当然,您也不能使用API来实现它。是的,它是一个管理员帐户。文档库名称是Site Pages。它是一个站点Pa通用电气图书馆。