2017-07-27 60 views
6

我的應用程序遵循服務器端授權流程,如https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps中所述。我強迫prompt=select_account對於Web服務器應用程序使用OAuth 2.0時,無法選擇正確的渠道流程

在最基本的情況下,在「第3步:Google提示用戶同意」時,用戶將看到一個屏幕,其中包含一個或多個標題爲「選擇帳戶」的帳戶。如果用戶選擇的賬戶只有一個與之關聯的渠道,那麼流程將直接進行到「步驟4:處理OAuth 2.0服務器響應」。

如果用戶有很多頻道與該賬戶相關聯,那麼用戶可能會看到另一個名爲「選擇您的賬戶或品牌賬戶」的屏幕。

對我個人而言,我有兩個Google帳戶:個人和工作帳戶,我在「選擇帳戶」屏幕上看到他們。如果我選擇我的個人帳戶,我會直接進入該應用程序。如果我選擇我的工作帳戶,我會看到額外的屏幕,我可以選擇我的「個人」工作YouTube頻道/帳戶或公司範圍的共享頻道/帳戶。總而言之,我可以管理和訪問3個YouTube頻道/帳戶。

問題是,有些用戶沒有看到「選擇您的帳戶或品牌帳戶」中列出的所有渠道。如果用戶同時登錄到YouTube,他們仍然可以從YouTube上的右上角的帳戶選擇器訪問他們的所有頻道,但是他們根本無法在選擇器中看到它們。在這種情況下,我嘗試調用YT API channels.list,但它不返回缺少的頻道,只有用戶從選擇器中選擇的頻道。

感覺就像我在這裏丟失了一些明顯的東西,但由於我對OAuth流程沒有太多的控制,所以我不知道如何去解決這個問題。這是我的最終目標還是一個問題,還是我只需要指導用戶去做一些事情呢?

可能相關的東西:

回答

1

這可能是未上市的賬戶是指用戶不屬於業主,但只是爲了和該標誌onBehalfOfContentOwner沒有設置管理員帳戶。

channels.list API有參數

managedByMe布爾

此參數只能在一個適當 授權的請求被使用。注意:此參數專用於 YouTube內容合作伙伴

設置此參數的值設置爲true,指示API只返回由內容所有者的onBehalfOfContentOwner 參數指定託管 渠道。 用戶必須通過身份驗證才能連接到指定的內容所有者,並提供onBehalfOfContentOwner必須 的CMS帳戶 。

onBehalfOfContentOwner

該參數僅可在一個適當的授權請求中使用。 注意:此參數專用於YouTube內容 合作伙伴。

的onBehalfOfContentOwner參數指示請求的 授權證書識別誰是作用於 代表的參數值指定的內容所有者的YouTube內容管理系統的用戶。此 參數適用於擁有和管理許多不同YouTube頻道的YouTube內容合作伙伴。它允許內容所有者 一次認證,並獲得所有的視頻和頻道數據, 而不必爲每個 單個通道的認證證書。用戶通過 進行身份驗證的CMS帳戶必須鏈接到指定的YouTube內容所有者。

+0

感謝您的回答!這可能是這種情況,但我並不完全確定,因爲有問題的賬戶只能由一個人管理。一旦我發現這是否是問題,我會回頭看看。 –

相關問題