2017-10-18 230 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端點可以支持我的需求嗎?或者如果你知道有什麼可以做到這一點的話,可以請你與我分享一下嗎? –