2017-04-14 49 views
2

當用戶被引導到了谷歌的OAuth認證頁面有兩種選擇,選擇一個帳戶:PHP /谷歌的OAuth - 獲取Gmail主的電子郵件,而不是@ pages.plusgoogle電子郵件

https://i.gyazo.com/e58272338236a472f1000b8aa1e426f6.png

或選擇一個帳戶,然後選擇一個子賬戶

https://i.gyazo.com/3e340c41a37f76c20541e1540c902035.png

我想主Gmail帳戶的電子郵件地址[email protected],而不是讓他們的子YouTube電子郵件地址,如Na [email protected]

我使用的範圍是:

有沒有什麼辦法可以繞過排序的這個還是有另我可以在此之外使用範圍訪問他們的主要Gmail。

編輯:通過一些更多帖子細算有發生在這裏同樣的問題:在2013年根據回Google OAuth2 Login - Get YouTube nickname and real email address報價:

有趣的使用情況。不幸的是,目前沒有辦法用一個標記來做到這一點。原因是youtube頻道由系統中的其他對象(幾乎就像用戶帳戶)表示。而OAuth授權可以屬於Gmail用戶或YouTube頻道。當我們在請求中看到youtube範圍時,我們會顯示用戶ID列表以及用戶可能擁有的任何頻道以及批准用戶選擇其中一個頻道。結果令牌屬於該對象/帳戶。

我們正在構建與代表團和渠道相關的新功能。例如 一種可能的解決方案可能是在用戶帳戶 上獲取單個令牌,使您可以訪問由該 帳戶管理的所有渠道上的API。對不起,目前沒有ETA。

有誰知道有關這個的進一步發展,因爲這將解決這一問題藏漢

回答

1

到目前爲止,還沒有可能獲取與YouTube頻道通過YouTube數據相關聯的Gmail地址API v3。由於the answer you quoted已發出,因此沒有任何變化。

正如@nvnagr所說,YouTube頻道就像一個獨特的用戶對象,因爲Google帳戶可以管理多個YT頻道。否則,在提出請求時,無法確定您指的是哪個頻道。根據referenced question判斷,只要您參考任何與YouTube API相關的範圍,Google的OAuth系統似乎會自動提及「YouTube頻道用戶」,而不是「真正的Google用戶」。

可能但是可以使用Google+ API。該API具有/people/{userId}端點,其中包含emails屬性。


注:一切都超出了這一點只是猜測,我從讀幾頁的文檔製作(意思是我不知道,如果它的工作原理)。不過,我想,它可能仍然可以幫助您找到解決方案。

當正確使用OAuth 2.0認證,您可以使用meuserId來獲取各自的用戶的配置文件表示。根據文檔的不同部分,要麼需要https://www.googleapis.com/auth/plus.me示波器(如所述的here)或plus.profile.emails.read示波器(規定爲here,但是當您以https://www.googleapis.com/auth/click)爲前綴時,似乎並不存在)。

根據您的OAuth令牌的授權情況,您可能能夠從該端點提取Gmail地址,雖然這看起來需要一點兒擺弄。