2017-07-27 48 views
6

Moja aplikacja jest zgodna z przepływem autoryzacji po stronie serwera, jak opisano w artykule https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps. Wymuszam prompt=select_account.Nie można wybrać właściwego kanału podczas korzystania z protokołu OAuth 2.0 dla aplikacji serwera WWW Przepływ

W najbardziej podstawowym przypadku, w "Kroku 3: Google prosi użytkownika o zgodę", użytkownik widzi ekran z jednym lub kilkoma kontami "Wybierz konto". Jeśli konto wybrane przez użytkownika ma tylko jeden kanał powiązany z nim, przepływ przechodzi bezpośrednio do "Etap 4: Obsługa odpowiedzi serwera OAuth 2.0".

Jeśli użytkownik ma wiele kanałów powiązanych z kontem, użytkownik może zobaczyć kolejny ekran zatytułowany "Wybierz konto lub konto marki".

Dla mnie osobiście mam dwa konta Google: osobisty i służbowy i widzę je oba na ekranie "Wybierz konto". Jeśli wybiorę moje konto osobiste, przejdę bezpośrednio do aplikacji. Jeśli wybieram moje konto pracy, widzę dodatkowy ekran, na którym mogę wybrać mój "osobisty" kanał/konto YouTube lub wspólny kanał/konto firmy. W sumie mogę zarządzać i uzyskiwać dostęp do 3 kanałów/kont YouTube.

Problem polega na tym, że niektórzy użytkownicy nie widzą wszystkich swoich kanałów wymienionych w sekcji "Wybierz konto lub konto marki". Jeśli użytkownicy są jednocześnie zalogowani do YouTube, nadal będą mogli uzyskać dostęp do wszystkich swoich kanałów z prawego górnego rogu konta w serwisie YouTube, ale nie będą mogli ich w ogóle zobaczyć w selektorze. Próbowałem już wywoływać YT API channels.list w tego typu przypadkach, ale nie zwraca brakujących kanałów, tylko ten wybrany przez użytkownika z selektora.

Czuję, że brakuje tu czegoś oczywistego, ale ponieważ nie mam dużej kontroli nad przepływem OAuth, nie jestem pewien, jak to naprawić. Czy to jest nawet problem z mojego końca, czy po prostu muszę poinstruować użytkowników, aby zrobili coś po swojemu?

Ewentualnie powiązanych rzeczy:

Odpowiedz

1

To może być to, że rachunki są nienotowane rachunki, że użytkownicy nie są właścicielami, ale tylko dla menedżerów i gdzie flaga onBehalfOfContentOwner nie jest ustawiony.

W channels.list API istnieją parametry

managedByMe logiczną

Ten parametr może być stosowane wyłącznie w odpowiednio uprawnionego wniosku. Uwaga: Ten parametr jest przeznaczony wyłącznie dla partnerów treści YouTube.

Ustaw wartość tego parametru na true, aby poinstruować API tylko powrócić kanałów zarządzanych przez właściciela zawartości że parametr onBehalfOfContentOwner określa. Użytkownik musi być uwierzytelniony jako konto CMS powiązane z określonym właścicielem treści i musi mieć wpis onBehalfOfContentOwner .

i

onBehalfOfContentOwner ciąg

Parametr ten może być stosowany wyłącznie w odpowiednio upoważnioną życzenie. Uwaga: ten parametr jest przeznaczony wyłącznie dla partnerów YouTube o treści partnerów.

Parametr onBehalfOfContentOwner wskazuje poświadczenia autoryzacji wniosek identyfikują użytkownika YouTube CMS, która działa na imieniu właściciela treści określonej w wartości parametru. Ten parametr jest przeznaczony dla partnerów YouTube, którzy są właścicielami i zarządzają wieloma różnymi kanałami YouTube. To umożliwia właścicielom treści do authenticate raz i uzyskać dostęp do wszystkich swoich filmów i kanału danych, bez konieczności podawania danych uwierzytelniających dla każdego pojedynczego kanału. Konto CMS, które użytkownik uwierzytelnia się pod numerem , musi być powiązane z określonym właścicielem treści YouTube.

+0

Dzięki za odpowiedź! Może tak być, nie jestem do końca pewny, ponieważ rachunki, o których mowa, powinny być zarządzane tylko przez jedną osobę. Wrócę do tego, gdy już się zorientuję, czy to jest problem. –