簡體   English   中英

Laravel 中需要 oAuth 令牌的 Microsoft Graph API 登錄表單:“所選用戶帳戶在“Microsoft 服務”客戶端中不存在”

[英]Microsoft Graph API login form for oAuth token needed in Laravel: "The selected user account does not exist in the "Microsoft Services" client"

我想從我的 Laravel 應用程序中獲取我的 Office 365 日歷中的一些任務。 所以我必須使用 Microsoft Graph 來請求 Office 365。

因此,我需要登錄到 Microsoft,然后我將獲得 OAuth 令牌。 然后我將能夠請求 Microsoft Graph。

意外行為:當我調用此 URL https://login.microsoftonline.com/XYZXYZXYZ/oauth2/v2.0/authorize?state=XYZXYZXYZ&scope=offline_access%20openid%20calendars.readwrite%20contacts.readwrite%20files.readwrite%20mail.readwrite%20mail.send%20tasks.readwrite%20mailboxsettings.readwrite%20user.readwrite&response_type=code&approval_prompt=auto&redirect_uri=https%3A%2F%2Fdomain.com%2Fmsgraph%2Foauth&client_id=XYZXYZXYZ. , 它顯示登錄表單。 我使用與在 Microsoft Azure 上創建的相同的 Microsoft 帳戶登錄,為我的 Laravel 應用程序配置圖形 API 訪問數據。 這失敗並出現此錯誤:

Le compte d'utilisateur sélectionné n'existe pas dans le client « Microsoft Services » et ne peut pas accéder à l'application « XYZ » dans ce 客戶端。 Le compte doit d'abord être ajouté en tant qu'utilisateur externe dans le client. Utilisez un autre compte。

英文翻譯:

所選用戶帳戶在“Microsoft 服務”客戶端中不存在,無法訪問此客戶端中的“XYZ”應用程序。 該帳戶必須首先在客戶端中添加為外部用戶。 使用另一個帳戶。

我讀過的和我嘗試做的:

  1. 我已經閱讀了Microsoft Laravel Package“Graph”文檔,它告訴我們創建一個 Laravel 路由(最終指向https://login.microsoftonline.com/XYZXYZXYZ/oauth2/v2.0/authorize?state=XYZXYZXYZ&scope=offline_access openid calendars.readwrite contacts.readwrite files.readwrite mail.readwrite mail.send tasks.readwrite mailboxsettings.readwrite user.readwrite&response_type=code&approval_prompt=auto&redirect_uri=https%3A%2F%2Fdomain.com%2Fmsgraph%2Foauth&client_id=XYZXYZXYZ )

  2. 看到這個錯誤,我進行了一些搜索。 我讀到這個問題最終可能是由於我的 Azure 帳戶(我曾將 Microsoft Graph API 配置為 Laravel 開發人員,並且還嘗試登錄以獲取 OAuth 令牌作為一個簡單的 Office 365 用戶)可能未被授權登錄。 所以我讀過這個文檔,它告訴我們通過設置這個最終編輯Manifest (可在 Microsoft Azure 站點訪問): "signInAudience": "AzureADandPersonalMicrosoftAccount", (或這 3 個中的另一個值: AzureADMyOrgAzureADMultipleOrgsAzureADandPersonalMicrosoftAccount )。 但是,如果我更改它,嘗試登錄時會出現新問題:租戶 ID 有問題...

我不明白為什么我無法使用我的 Azure 帳戶登錄。 我只是希望能夠獲得 OAuth 令牌,以便我的 Laravel 應用程序能夠訪問我的 Office 365 任務,這看起來非常困難。 我認為這是一個配置問題。 你能告訴我解決這個問題的方法嗎?

當您請求/authorize端點時,您將獲得 url 中的代碼。這會在您的評論中返回空白頁面。

在此處輸入圖像描述

發布/token以獲取帶有授權碼的訪問令牌后,您可以獲得訪問令牌。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM