2016-01-30 10 views
7

Sono uno dei molti utenti che eseguono la migrazione da Parse e su Heroku (con sandbox MongoLab), utilizzando come guida https://parse.com/docs/server/guide.Errore durante l'accesso a Facebook con server di analisi

Le cose andavano bene con la migrazione (gli oggetti possono essere creati/recuperati tramite i comandi REST sul repository remoto) fino a quando ho provato a utilizzare (iOS) l'accesso di Facebook.

Il metodo:

[PFFacebookUtils logInInBackgroundWithReadPermissions: ... ] 

che aveva lavorato quando Parse ospitato, ora restituisce il seguente errore:

[Error]: Facebook auth is invalid for this user. (Code: 101, Version: 1.12.0) 

Nota: l'unica modifica alla mia (in precedenza di lavoro) iOS il codice è puntare il server Parse al mio nuovo repository, ospitato manualmente, come mostrato di seguito:

let parseConfiguration = ParseClientConfiguration(block: { (ParseMutableClientConfiguration) -> Void in 
     ParseMutableClientConfiguration.applicationId = "<*APP ID*>" 
     ParseMutableClientConfiguration.clientKey = "<*CLIENT KEY*>" 
     ParseMutableClientConfiguration.server = "https://<*HEROKU APP ID*>.herokuapp.com/parse" 
    }) 

Parse.initializeWithConfiguration(parseConfiguration) 

& l'unica modifica al codice Parse Server open source (https://github.com/ParsePlatform/parse-server-example) sta sostituendo la configurazione per abbinare il mio Parse identificazione/mongo:

var api = new ParseServer({ 
    databaseURI:  'mongodb://<*UNIUQUE ID*>' || 'mongodb://localhost:27017/dev', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: '<*PARSE APP ID*>', 
    masterKey: '<*PARSE MASTER KEY*>' 
}); 

risposta

8

è necessario aggiungere le facebookAppIds chiave che contiene un array di facebook valida ID app, questo è menzionato here nei documenti.

in alternativa, aggiungere la chiave FACEBOOK_APP_ID come riferimento [qui] (https://github.com/ParsePlatform/parse-server/issues/82)

+0

Wow, grazie mille per averlo indicato. Stranamente, tuttavia, sto ricevendo lo stesso errore anche dopo che questa riga è stata inclusa e inviata al server -> FacebookAppIds: ['<* codice ID app di Facebook di quindici cifre *>'] –

+0

In questa [guida] (https: //parse.com/docs/server/guide#migrating), ho letto quanto segue: ** Consenti autenticazione FB: disponibile in Analisi server se è configurato un ID app Facebook. ** Non sicuro se da " Questo è disponibile "significano che consentire l'autenticazione di Facebook è un'impostazione booleana di configurazione che è necessario attivare o se deve essere attivata automaticamente se l'array facebookAppIds è impostato. Assumerei quest'ultimo. –

+1

Ho trovato un'altra possibilità nel Parse Server [problemi] (https://github.com/ParsePlatform/parse-server/issues/82). Puoi anche aggiungere una: variabile d'ambiente FACEBOOK_APP_ID. Tuttavia, al momento c'è un [bug] (https://github.com/ParsePlatform/parse-server/issues/104) in cui non è possibile modificare alcun dato relativo al PFUser quando è stato creato tramite login FB. – Adamontherun

3

Non so se hai già avuto o già provato questo ma ero in una situazione molto simile a voi e quello fissato per me era questo:

in AppDelegate.swift, il ParseClientConfiguration deve essere inizializzato PRIMA l'inizializzazione Parse Facebook Utils in didFinishLaunchingWithOptions:

... 

// *** Initialize Parse. *** 
let config = ParseClientConfiguration(block: { 
    (ParseMutableClientConfiguration) -> Void in 
    ParseMutableClientConfiguration.applicationId = appKey; 
    ParseMutableClientConfiguration.clientKey = clientKey; 
    ParseMutableClientConfiguration.server = serverURL; 
}); 

Parse.initializeWithConfiguration(config); 

// *NOTE: Putting the following line after after Parse.initializeWithConfiguration(config) fixed the issue 
// After this change, the user is no longer nil and does not print "Uh oh. The user cancelled the Facebook login.". Instead, it executes the `if let user = user` block 
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) 

... 

Spero che questo aiuti almeno qualcuno!

0

Ho avuto lo stesso problema su un server di analisi eseguito in Back4app. La soluzione era aggiungere l'ID app di Facebook sulla piattaforma Back4app.

Problemi correlati