2011-09-07 26 views
7

Estoy tratando de determinar cuándo un usuario se unió a Facebook. Hasta ahora, lo que se me ocurrió es escanear las imágenes del perfil de los usuarios para el primero (me parece recordar que en los primeros días, Facebook te forzó a subir una foto de perfil) y tomar la marca de tiempo desde allí. Pensé en hacer lo mismo con las publicaciones en la pared también ...determinar cuando el usuario creó la cuenta de Facebook

¿Alguien tiene alguna idea sobre cómo obtener la información más precisa sobre cuándo un usuario creó su cuenta?

+0

buscado en Google un poco, parece pues no. – apscience

Respuesta

12

No hay manera de conseguir este campo, pero lo que muchas aplicaciones para aproximarse a esto es tomar la foto más antigua de álbum del "Perfil Pictures - que para mí es una semana después de mi fecha real de registro

+0

Fotos de perfil es lo mejor que puedo pensar, otras publicaciones no están disponibles antes de (aprox.) Junio ​​de 2009, así que las fotos son las más fáciles de buscar en el pasado – Igy

1

Además de mirar la foto de perfil o álbum del usuario más viejo (que no funciona todo el tiempo), puede estimar la fecha de creación de la cuenta de Facebook buscando la fecha de creación de la publicación de usuario más antigua (puede encontrar algún código para hacerlo) here).

Otro enfoque se explica here. Muestra cómo averiguar la fecha de creación de una cuenta de Facebook sin tener que llamar a la API de Facebook, solo en función del UID de Facebook del usuario. También puede descargar here la tabla de búsqueda que muestra la correlación entre el UID de Facebook y la Fecha de creación de la cuenta de Facebook.

5

Estaba pensando - tal vez ID será una herramienta útil. Cada vez que un usuario crea nuevas cuentas, debe obtener una ID más alta. Busqué en Google y encontré que hay un método para estimar la fecha de creación de la cuenta por ID y Massoud Seifi de metadatascience.com recopiló algunos buenos datos al respecto. enter image description here

lea este artículo:

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

y he aquí algo de ID para downlaod:

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

+1

Esta solución fue la mejor, pero creo que ya no funciona, desde la introducción de ID de usuario con ámbito de aplicación, más información aquí: https://developers.facebook.com/docs/apps/upgrading/#upgrading_v2_0_user_ids –

+1

Estaba usando este método durante el último año y puedo confirmarlo que ya no funciona – Coccodrillo

0

Si está de hecho tratando de encontrar cuándo un usuario se unen a Facebook, Estoy de acuerdo con las respuestas de otros.

La mejor manera que he podido averiguar (que también es más barato que tener que reiterar a través de toneladas de mensajes) es acceder a las primeras "imágenes de perfil" del usuario. Esto supone que un usuario publique una imagen de perfil poco después de crear su cuenta.

o por qué no sólo uso Imágenes de perfil álbum? Una vez que tenga acceso al álbum "Imágenes de perfil", es posible que pueda usar el campo created_time para el álbum (u ordene las fotos de perfil de created_time para fotos individuales).

Incluso si se eliminó la foto más antigua, ¿qué posibilidades hay de que el usuario permanezca sin una imagen de perfil durante mucho tiempo?

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

1

El uso de la imagen sugerencia perfil, esto es cómo lo hice: Quizás no sea la mejor manera, pero esto es lo mejor que puedo hacer con mi conocimiento real objetivo 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"]; 
Cuestiones relacionadas