2011-09-07 15 views
7

Sto cercando di determinare quando un utente si è iscritto a Facebook. Finora quello che ho scoperto è la scansione delle immagini del profilo degli utenti per il primo (mi sembra di ricordare che nei primi giorni, Facebook ti ha costretto a caricare un'immagine del profilo) e prendere il timestamp da lì. Ho pensato di fare la stessa cosa anche con i messaggi a muro ...determina quando l'utente ha creato l'account facebook

Qualcuno ha qualche idea su come ottenere le informazioni più accurate su quando un utente ha creato il suo account?

+0

Googled per un po ', sembra no. – apscience

risposta

12

Non v'è alcun modo per ottenere questo campo, ma ciò che molte applicazioni fanno per approssimare questo è scattare la foto più antica album 'Profilo Immagini' - che per me è entro una settimana della mia data effettiva di iscrizione

+0

Le immagini dei profili sono le migliori che riesco a pensare, altri post non sono disponibili prima di (circa) giugno 2009, quindi le foto sono le più facili da cercare nel passato – Igy

1

Oltre a guardare la foto o l'album del profilo dell'utente più vecchio (che non funziona sempre), puoi stimare la data di creazione dell'account Facebook trovando la data di creazione del post più vecchio utente (puoi trovare del codice per farlo here).

Un altro approccio è spiegato here. Mostra come determinare la data di creazione di un account Facebook senza dover chiamare l'API di Facebook, solo in base all'UID di Facebook dell'utente. È inoltre possibile scaricare la tabella di ricerca here che mostra la correlazione tra UID di Facebook e Data di creazione dell'account di Facebook.

5

Stavo pensando - forse ID sarà uno strumento utile. Ogni volta che un utente crea nuovi account, dovrebbe ottenere un ID più alto. Ho cercato su google e ho scoperto che esiste un metodo per stimare la data di creazione dell'account per ID e Massoud Seifi da metadatascience.com che ha raccolto alcuni buoni dati a riguardo. enter image description here

leggere questo articolo:

http://metadatascience.com/2013/03/11/inferring-facebook-account-creation-date-from-facebook-user-id/

Ed ecco alcuni ID di downlaod:

http://metadatascience.com/2013/03/14/lookup-table-for-inferring-facebook-account-creation-date-from-facebook-user-id/

+1

Questa soluzione è stata la migliore, ma penso che non sia più funziona, dall'introduzione di id-scope con scope per app, maggiori informazioni qui: https://developers.facebook.com/docs/apps/upgrading/#upgrading_v2_0_user_ids –

+1

Stavo usando questo metodo per l'ultimo anno e posso confermare che non funziona più – Coccodrillo

0

Se si sta effettivamente cercando di trovare quando si ha un utente iscriversi a Facebook, Sono d'accordo con le risposte degli altri.

Il modo migliore che ho potuto scoprire (che è anche più economico di dover reiterare attraverso tonnellate di post) è l'accesso alle prime "immagini del profilo" dell'utente. Ciò presuppone che un utente possa pubblicare un'immagine del profilo subito dopo aver creato il proprio account.

O perché no just use profilo immagini album? Una volta ottenuto l'accesso all'album "Immagini del profilo", potresti essere in grado di utilizzare il campo created_time per l'album (o ordinare le immagini profilo per created_time per le singole foto).

Anche se la prima foto è stata cancellata, quali sono le possibilità che l'utente rimanga senza un'immagine del profilo per un lungo periodo?

Riferimento: https://developers.facebook.com/docs/graph-api/reference/v2.0/album

1

Utilizzando l'immagine del profilo suggerimento, questo è come ho fatto: Forse non è il modo migliore, ma questo è il meglio che posso fare con il mio attuale conoscenza oggettiva C

__block NSDate *oldestPictureDate = [NSDate date]; 
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"albums.fields(name,photos.fields(created_time))"}] 
    startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
      NSArray* albums = result[@"albums"][@"data"]; 
      NSUInteger index = [albums indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) { 
       return [obj[@"name"] isEqualToString: @"Profile Pictures"];}]; 
      if (index != NSNotFound) { 
       NSDictionary *profileImages = albums[index]; 
       NSDictionary *photos = profileImages[@"photos"]; 
       NSArray *data = photos[@"data"]; 
       for (NSDictionary *picture in data) { 
        NSDate* pictureCreationDate = [localDateYYYYMMDD dateFromString:[picture[@"created_time"] substringToIndex:10]]; 
        if([oldestPictureDate compare:pictureCreationDate] > 0) oldestPictureDate = pictureCreationDate; 
       } 
      } 
    } 
]; 

con

localDateYYYYMMDD = [[NSDateFormatter alloc] init]; 
[localDateYYYYMMDD setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
[localDateYYYYMMDD setDateFormat:@"yyyy-MM-dd"]; 
Problemi correlati