7

Kilka tygodni temu zaczęliśmy zauważać dziwne błędy z interfejsu API klienta google lub google drive JS api (nie wiesz, który adres URL jest niżej), mają zwiększone częstotliwości w ciągu ostatnich kilku dnibug w google drive SDK JS api (TypeError: nie można odczytać właściwości "sl" z undefined)

TypeError: Cannot read property 'sl' of undefined 

to wydaje się mieć wpływ na okna Chrome głównie - typowy przykład agenta użytkownika z naszych dzienników błędów jest

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31) 

od czego Widziałem, jedyna linia z .sl jest następująca:

if(!this.b.headers.Authorization){var f=(0,_.Hx)(_.p,_.p);f&&f[_.Ak.pl.sl]&&(c=f[_.Ak.pl.sl].split(/\w+/))} 

ten pochodzi z

https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en.uSTvEdNXb7o.O/m=client/rt=j/sv=1/d=1/ed=1/am=UQ/rs=AItRSTOm1KS5pZVEepZkn9qQJeuQZC_Qjw/cb=gapi.loaded_0 

wiem, że to celowo tajemniczy, więc jest poza mną się sugerować, jak to naprawić, ale byłbym wdzięczny, jeśli ktoś patrzy na to jak częstotliwość wydaje się wzrastać . Być może strażnik wokół _Ak.pl, aby sprawdzić, czy nie jest zerowy przed uruchomieniem .sl?

+0

Mam również ten sam problem. Czy jest dostępne jakieś rozwiązanie? Jest to związane z dostarczonym pakietem SDK. Obserwuję tylko próbki podane w dokumentach. – IvenMS

+0

Zrobiliśmy więcej badań, a problem wydaje się być związany z przekroczeniem limitu czasu sesji. sposobem obejścia tego problemu jest sprawdzenie, czy token autoryzacji gapi jest pusty, a jeśli tak, spróbuj ponownie wywołać uwierzytelnienie przed wywołaniem dowolnej innej funkcji. –

+0

Znaleziono rozwiązanie, a problem wydaje się wynikać z ustawień autoryzacji. Wygląda na to, że interfejs API nie działa z ustawieniami "offline". – IvenMS

Odpowiedz

2

Udało mi się rozwiązać problem, który został zgłoszony. Problem wynika z ustawień autoryzacji. Niektóre ustawienia prawdopodobnie nie działają dla aplikacji. Teraz aplikacja działa z następującymi ustawieniami:

gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthResult); 

Poprzednio aplikacja była skonfigurowana do uruchamiania w trybie offline.

Uwaga: W kodzie dane identyfikatora klienta i zakresów są zmiennymi, właściwość handleAuthResult jest funkcją powiązaną.