Utilizzo l'API Android di parse.com e ho aggiunto il supporto per l'accesso a Facebook/Twitter. Funziona beneDisconnettersi o cambiare account utilizzando Parse Autenticazione Twitter/Facebook
La parte difficile sembra essere disconnettere.
Se accedo al mio applicazione utilizzando Twitter:
ParseTwitterUtils.logIn(UserLoginActivity.this, twitterLoginCallback);
oppure utilizzando Facebook:
ParseFacebookUtils.logInWithReadPermissionsInBackground(UserLoginActivity.this, null, facebookLoginCallback);
sono richiamato in una finestra web per entrare le mie credenziali di Twitter e quindi consentire o negare accesso alla mia app. Una volta che lo consento, sono in grado di accedere con successo e ho accesso al mio nome di schermo. Tutto bene!
Quando provo ad accedere fuori della mia ParseUser, faccio ottenere disconnesso. Tuttavia, se faccio nuovamente clic sul pulsante di accesso di Facebook o Twitter, sono pre-autenticato come account precedente, non posso cambiare account.
ho provato:
- Controllo Chrome e browser e non vengono registrati a Twitter.
- Disconnessione del nativo Twitter/Facebook app
La mia logica login iniziato come semplice:
ParseUser.logOut();
Per Twitter ho provato
- Disinstallare la mia domanda - questo non risolvere ma non è una soluzione ideale.
- Non chiamare
Parse.enableLocalDatastore(this);
nel mioApplication
come suggerito qui: https://stackoverflow.com/a/26338326/494356 - Scollegamento l'account Twitter come suggerito qui: https://stackoverflow.com/a/34052718/494356. Questo ha anche il cattivo effetto collaterale della creazione di un nuovo ParseUser ogni volta (ma ancora per lo stesso account Twitter)
- Ho provato a cambiare i permessi da 'Sola lettura' a 'Lettura e scrittura' come suggerito qui https://stackoverflow.com/a/27714159/494356. (Perchè questo avrebbe avuto importanza in realtà non ha senso per me comunque)
- Ho provato a regolare l'authtoken a
null
ParseTwitterUtils.getTwitter().setAuthToken(null);
ParseTwitterUtils.getTwitter().setAuthTokenSecret(null);
Per Facebook ho cercato
- Disinstallare la mia domanda - Questo fa non risolvere il problema.
Utilizzo delle funzioni di Facebook SDK Logout:
AccessToken.setCurrentAccessToken(null);
Profile.setCurrentProfile(null);
LoginManager.getInstance().logOut();
Ci deve essere utilizzato un
Session.closeAndClearTokenInformation()
come suggerito here. Ma Facebook ha Deprecated the Session class e non è più nell'SDK.- Scollegamento dell'account Facebook come suggerito here. Ancora una volta questo causa ParseUsers duplicati e sono ancora in grado di accedere utilizzando le credenziali salvate.
Apprezzerei molto qualsiasi risposta o suggerimento. Anche se puoi rispondere solo per Twitter o Facebook, ma non per entrambi, mi piacerebbe comunque sentirlo.
Sono curioso ora dal momento che hai menzionato la mia risposta sull'altra domanda simile su quale sia il tuo caso d'uso per la tua applicazione? Che comportamento vuoi avere? Vuoi che l'utente di analisi rimanga sempre lo stesso e che l'utente usi più account Twitter per ottenere lo stesso utente di analisi? È solo per scopi di test? Fondamentalmente ho difficoltà a capire che tipo di applicazione vorrebbe che il loro utente dovesse eseguire le azioni che stai descrivendo. – craigts
@craigts Il mio caso d'uso è questo: voglio accedere con il mio account Twitter per usare l'app. Il mio amico arriva e vuole provarlo. Esco dalla mia app e il mio amico può accedere utilizzando il proprio account Twitter. Quando il mio amico si disconnette, se uno di noi accede nuovamente, otteniamo il nostro account originale. – Khalos
l'immersione nei documenti sembra definitivamente non supporta questo scenario. Penso che le uniche soluzioni specifiche a questo problema siano: 1) bug Parse per implementare questo caso d'uso, 2) modificare il codice Parse da soli, o 3) gestire manualmente l'autenticazione di Twitter e Facebook. Un suggerimento che eviti questo problema potrebbe essere quello di provare e configurare la tua app in modo che abbia più senso per l''amico' nel tuo scenario scaricare e provare l'app stessa. Forse offrire qualche sorta di incentivo sia per l'utente e il loro amico. – craigts