如何通过Rest API为OneDrive for Business项目创建具有到期日期的共享链接?

时间:2018-10-18 03:27:30

标签: office365

我想将我们的应用程序与OneDrive for Business集成在一起,我曾经通过rest API创建共享链接。但是,现在我希望共享链接为临时链接,是否可以为共享链接设置失效日期?

1 个答案:

答案 0 :(得分:0)

MS Graph API没有记录可实现此目标的API,但最终,我们通过跟踪OneDrive网站获得了正确的API。 enter image description here

仅当您选择“任何人”选项时,它才会提示日期弹出窗口。某些人可能会发现“任何人”都是灰色的,在租户中无法选择。这是因为默认情况下禁用此选项。我们应该为SharePoint启用外部共享。 enter image description here 当然,对于私有网站集,您可以在sharepoint管理中心中进行设置。此外,PowerShell也可用于该配置。

$adminUPN="replace_with_username" $orgName="name_of_sharepoint_prefix" 
$usercredential = Get-Credential -username $adminUPN -Message "type 
password" Connect-SPOService -Url https://$orgName-admin.sharepoint.com - 
Credential $userCredential
#Identify and connect to the desired Site Collection
$siteurl="https://$orgName.sharepoint.com/sites/desired_site_collection"
#Enable External User and Guest Sharing on that chosen Site Collection
set-sposite -identity $Siteurl -sharingcapability 
ExternalUserAndGuestSharing

就是这样。现在检查您的工作(刷新页面/网站集),“任何人”选项应该可用。

之后,我们可以以编程方式创建一个带有到期日期的匿名共享链接。我已经研究了相关的API。

  • 注册一个应用并分配以下权限。 enter image description here
  • 通过身份验证过程并获取访问令牌,可以参考 ADAL
  • 调用API

POST https://{tenant}.sharepoint.com/sites/{site}/_api/Web/Lists/GetByTitle(‘Documents’)/Items(1)/sharelink
Body :  {“request”:{“createLink”:true,”settings”:{“linkKind”:5,”expiration”:”20180504T000000+0800″}}}

我注意到只有匿名共享链接支持到期日期。当前其他选项尚未发布此类API或功能。

顺便说一句,我找到了一个免费渠道来解决Azure和Office365查询:aka.ms/devchat。他们支持在线聊天和电子邮件。