18

Ich verwende das iOS Integrierte Frameworks zum Verbinden. Nach der Frage nach "publish_stream" Berechtigungen, kehrt FB einen Fehler:"Die App muss zum Zeitpunkt der Installation nach einer grundlegenden Leseberechtigung fragen"

Error Domain=com.apple.accounts Code=7 "The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time." UserInfo=0x145ad6a0 {NSLocalizedDescription=The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time.} 

Was ist hier los? Das Anzeigen von zwei Benutzerberechtigungspopups ist eine weniger als ideale Benutzererfahrung.

Antwort

17

Beim allerersten Mal müssen Sie nach Leseberechtigungen fragen. Sie können den Benutzer zunächst nicht mit beliebigen Veröffentlichungs-/Schreibberechtigungen authentifizieren. Was Sie danach tun sollten, ist, wo es in Ihrer App Sinn ergibt, fragen Sie nach der Berechtigung publish_stream. Machen Sie definitiv nicht die anfängliche Erlaubnis und fragen Sie dann sofort nach der Berechtigung publish_stream.

Siehe diese Anmerkung in https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.0-to-3.1/, Abschnitt "Fordern nach Lesen & schreiben Berechtigungen separat". Obwohl dies für das Facebook SDK für iOS gilt, handelt es sich um eine Erweiterung derselben Anforderung im integrierten Framework.

// if a user has *never* logged into your app, you MUST include one of 
// "email", "user_location", or "user_birthday". Other read 
// permissions can also be included here. 

Geschieht dies nicht, führt dies zu den gleichen Fehler: in den Facebook-docs

+0

ich bin gefragt @ "user_about_me" und immer noch diesen Fehler. Was ist los mit dir ?? – Stas

+0

Fragen Sie nur nach user_about_me, wenn Sie diesen Fehler erhalten? Auch wenn Sie den Code zur Verfügung stellen können, den Sie verwenden, hilft das. –

+0

danke das Problem ist bereits behoben. Es gab einige Verzögerungen auf Facebook – Stas

5

würde Ich mag hinzufügen, dass es einen zusätzlichen Nachteil ist.

4

Im neuesten SDK (v3.5) müssen Sie auch @ "basic_info" im Berechtigungsarray übergeben. Früher war es implizit, aber nicht mehr. Wenn Sie dies nicht tun, erhalten Sie die „Die App für eine grundlegende Leseberechtigung fragen müssen zum Zeitpunkt der Installation“ -Meldung

[FBSession openActiveSessionWithReadPermissions:@[@"email", @"basic_info"] 
           allowLoginUI:YES 
          completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 
           [self sessionStateChanged:session state:state error:error]; 
          }]; 

von der Methode docs:

readPermissions - An array of strings representing the read permissions to request during the authentication flow. The basic_info permission must be explicitly requested at first login, and is no longer inferred, (subject to an active migration.) It is not allowed to pass publish permissions to this method.

Verwandte Themen