2012-07-21 19 views

Odpowiedz

15

Miałem ten sam problem podczas uwierzytelniania z "com.facebook.sdk error 2". Myślę, że rozwiązał to z mojej strony. Po prostu upewnij się, że w definicji aplikacji na "https://developers.facebook.com/apps/ .." w sekcji "Identyfikator pakietu IOS" ustawisz identyfikator swojej aplikacji jako nazwa_domeny com.appName, a nie X792739.com.domainname.appName

+0

To jest poprawna odpowiedź. Używałem identyfikatora pakietu z mojego portalu dla programistów (tak, że mogę uruchomić urządzenie), podczas gdy aplikacja Facebook na developer.facebook.com ma identyfikator pakunku klienta. – Mugunth

+0

I sekunda @ Mugunth To jest poprawna odpowiedź ... Nie skonfigurowałem poprawnie aplikacji na Fb.com/apps. Teraz działa jak urok. – Ephraim

+0

Ten sam problem. Dzięki tobie, został rozwiązany. – iOmi

5

Ten błąd jest odbierany, gdy użytkownik wybierze opcję "Nie zezwalaj" na pytanie o przyznanie uprawnień aplikacji.

Proponuję zastąpić domyślny komunikat o błędzie (skopiowany z przykładowego kodu Facebooka SDK) za pomocą przyjaznego dla użytkownika komunikatu, informując go, aby upewnić się, że przyznał aplikacji wymagane uprawnienia.

Aby rozwiązać ten problem na iOS 6, przejdź do Ustawienia -> Facebook i włącz przełącznik aplikacji.

+0

gdzie dokładnie to robisz? – ohayon

+0

W 'sessionStateChanged: state: error:' metoda wywołania zwrotnego, którą implementujesz w swoim delegacie. Jeśli pojawi się błąd, nie pokazuj go użytkownikowi, wyświetl komunikat, który mówi mu, aby upewnić się, że udzielił wymaganych uprawnień. – Kof

+0

Dzięki. To działa. Nie rozwiązuje problemu, ale przynajmniej pozwól mi poinformować użytkowników. – honcheng

13

Tak, po pojawieniu się tego błędu, po przejściu do Ustawień zobaczysz, że ustawienie dla tej aplikacji jest "WYŁĄCZONE". Ale problem w tym przypadku polega na tym, że użytkownik nigdy nie został poproszony o zezwolenie na dostęp - tj. Ustawienie zostało wyłączone automatycznie przy pierwszym dostępie. Jeśli użytkownik został zapytany, to oczywiście jest to zrozumiałe, ale tak nie jest (wygląda tak, jakby SDK cicho i automatycznie naciskał Nie zezwalaj na użytkownika). Właśnie dlatego jest to problem.

Zanim przeczytasz dalej, chcę zauważyć, że po ustawieniu nie można po prostu powtórzyć procesu, aby go przetestować, ponieważ po ustawieniu ustawienia, nigdy nie poprosi użytkownika (nawet usunięcie i ponowne zainstalowanie aplikacja nie pomaga). Aby przetestować ten problem, musisz zresetować uprawnienia, przechodząc do opcji Ustawienia -> Ogólne -> Resetuj -> Zresetuj lokalizację & Prywatność, zanim będzie można spróbować ponownie wykonać to powtórzenie.

Z testów dowiedziałem się, że jeśli masz offline_access w uprawnieniach, o które prosisz po raz pierwszy, to spowoduje to błąd logowania (i nie monituje użytkownika i ustawienie uprawnienia na WYŁ). Zestaw SDK nie sprawdza i nie informuje, że to uprawnienie jest niedozwolone; po prostu się nie loguje.

+0

Miałem ten problem. Usunięto uprawnienia offline_access i zresetowałem moją lokalizację i ustawienia prywatności i to działa! Naprawdę denerwujące dla mnie, – Jovan

+0

, problem zdecydowanie wymagał dostępu do offline_access. Po usunięciu tego błędu błąd 2 ustąpił. dzięki za wskazówkę! – John

8

Wyświetlany błąd o błędzie tylko dla niektórych osób w przypadku błędu . Com.facebook.sdk 2. Problem polegał na tym, że nasza aplikacja na Facebooku wciąż była w trybie Sandbox Mode. Wyłączenie tego na developers.facebook.com/apps/{ourfacebookid} natychmiast naprawiło problem.

Okazuje się, że działał dla tych z nas, którzy zostali skonfigurowani jako administratorzy aplikacji FB, ale nie dla nikogo innego.

+0

Kosztowało to tylko 3 godziny debugowania, wracając do poprzednich poprawek. I uratowałeś jeszcze kilka godzin walki, thx, przegłosowano! – mentat

1

Miałem do czynienia z tym samym problemem. Okazuje się, że jeśli Sandbox jest włączony, to użytkownicy powinni być administratorzy. Jeśli jest wyłączona, działa dla wszystkich.

Powiązane problemy