2017-10-18 243 views
0

我尝试使用Microsoft Graph编写脚本将Excel文件上传到OneDrive然后读取Excel文件时出错。租户没有SPO许可证

我跟着Microsoft documentation获得没有用户的访问令牌。我成功获取访问令牌,但在使用访问令牌调用OneDrive API时出现错误。

这里是回应:

{ 
    "error": { 
     "code": "BadRequest", 
     "message": "Tenant does not have a SPO license.", 
     "innerError": { 
      "request-id": "5ec31d17-3aea-469f-9078-de3608f11d0d", 
      "date": "2017-10-10T04:34:05" 
     } 
    } 
} 

我不明白为什么我需要有SPO许可证而调用图形API以及如何得到它。由于这个错误消息,所以我试图购买SPO许可证。

this document,我想我应该可以看到很多产品许可证的网页,但在与Azure的门户网站登录并转到许可证页面,我看到的只有2个产品:Azure的AD高级版和企业移动套件:

screenshot

+0

题外话作为许可问题 – bummi

回答

0

在这里回答几件事情。

背景:微软图形是开发商网关或API许多微软的云服务,如Office 365,Azure的Active Directory中,EMS(企业移动套件),个人观,个人OneDrive多。 API的使用是免费的,但要访问其背后的数据,您需要真正拥有这些服务 - 在某些情况下,它们可能是免费的,而在其他情况下,您可能需要为它们付费。

至于将Office 365添加到您现有的租户。我相信你已经使用Microsoft帐户注册了Azure。这意味着您已经拥有Azure Active Directory租户。您仍然可以为该租户购买/获取Office 365。您只需在租户中创建一个新的Azure AD用户(不是Microsoft帐户),并将其作为公司管理员。然后,您应该可以注册Office 365 - 如果它询问您是否已有租户或帐户,请使用您刚刚创建的AAD帐户登录。瞧,你应该有一个订阅Azure和现在订阅到Office 365

希望这有助于一个Azure的AD租户,

+0

非常感谢,@丹克肖 - MSFT :)。你的解释对我非常有帮助。我会按照您的指示为我的租客获得O365订阅。根据我的需要(服务呼叫将excel文件上传到Onedrive并使用MS Excel API读取),请告诉我哪种产品适合我https://products.office.com/zh-cn/compare-所有微软办公产品?标签= 2? –

+0

他们都会为你工作,因为他们都包含OneDrive服务。 Office 365 Business Essentials对您而言是最便宜的,也许是最好的选择,因为它实际上会点亮更多的Microsoft Graph功能 - 如果您将来希望做的不仅仅是在OneDrive中上传/操作Excel文件。 –

+0

非常感谢,@丹:)。 –

0
  1. 您能够在同一个租户使用您的帐户登录后访问OneDrive内容(包括Excel文件)通过浏览器手动?

  2. 如果您能够手动访问驱动器和文件,请使用图形浏览器https://developer.microsoft.com/en-us/graph/graph-explorer使用相同的帐户登录并拨打电话以获取驱动器内容。当你登录时,你会看到一个同意页面,列出需要授予的权限。请记下这些权限并检查权限是否与访问驱动器所需的权限匹配。

  3. 如果您还没有合适的SPO许可证,您可以尝试设置免费的Office-365试用帐户(https://products.office.com/en-in/business/office-365-enterprise-e3-business-software)并测试这些API。

+0

1.我能够访问[Onedrive网站](https://onedrive.live.com)上传一个excel文件然后阅读它。 2.我可以使用图形浏览来访问[my root drive directory](https://graph.microsoft.com/v1.0/me/drive/root/children),我可以看到上传的文件在API的回应中。但是我无法通过[Excel API]读取文件(https://graph.microsoft.com/v1.0/me/drive/items/16FA3ECF60A1FF73!112/workbook/worksheets)。我得到这个错误:'{“code”:“generalException”,“message”:“处理异常时}} –

+0

3.我无法使用Microsft帐户设置Office-365。看起来我需要一个工作账户来完成你的建议。但是,如果我设置了工作帐户,我如何将此帐户与我已有的租户相关联? –

0

OneDrive for Business和Excel API都需要Office 365。根据您的屏幕截图,这看起来像独立的Azure Active Directory租户(即未链接到O365)。

SPO许可证消息的原因是OneDrive for Business是为用户自动配置的特殊SharePoint Online文档库。

+0

谢谢你的帮助。如果我购买Office 365,是否可以使用OneDrive和Excel API?我的Microsoft帐户似乎无法购买Office 365,它似乎只适用于工作帐户。如果我注册一个工作账户并购买Office 365,我如何将其链接到现有的Azure Active Directory租户? –

+0

您可以将这些API与您的Microsoft帐户一起使用,但您需要使用[v2端点](massivescale.com/microsoft-v2-endpoint-primer/)。你用来注册你的应用程序(从屏幕截图)是v1,它只支持工作/学校帐户。 –

+0

非常感谢。我已阅读您发送的信息。它不适合我,因为我试图做的是“服务到服务呼叫”。这些API将在没有用户的情况下在后台被调用,无需重定向。这个想法是我的应用程序将生成一个报告(Excel文件),我需要将其上传到Onedrive并有能力读取该文件(通过使用API​​)。一切都会上传/存储到我的Onedrive。您认为V2端点可以支持我的需求吗?或者如果你知道有什么可以做到这一点的话,可以请你与我分享一下吗? –