2011-09-07 65 views
7

Tôi đang cố gắng xác định thời điểm người dùng đã tham gia facebook. Cho đến nay những gì tôi đã đưa ra là quét các hình ảnh hồ sơ người dùng cho người đầu tiên (tôi dường như nhớ rằng trong những ngày đầu, facebook buộc bạn phải tải lên một hình ảnh cá nhân) và lấy dấu thời gian từ đó. Tôi cũng nghĩ đến việc làm tương tự với các bài viết trên tường ...xác định thời điểm người dùng tạo tài khoản facebook

Có ai có ý tưởng về cách nhận thông tin chính xác nhất về thời điểm người dùng tạo tài khoản của mình không?

+0

Googled một chút, có vẻ không có. – apscience

Trả lời

12

Không có cách nào để có được lĩnh vực này, nhưng những gì nhiều ứng dụng làm gì để xấp xỉ này là chụp ảnh lâu đời nhất trong album của Hồ Sơ Hình '- đó đối với tôi là trong vòng một tuần kể từ ngày đăng ký thực tế của tôi

+0

Hình ảnh hồ sơ là tốt nhất tôi có thể nghĩ đến, các bài đăng khác không có sẵn trước (khoảng.) Tháng 6 năm 2009, vì vậy, hình ảnh dễ tìm kiếm nhất trong quá khứ – Igy

1

Ngoài việc xem ảnh hoặc album của người dùng cũ nhất (không hoạt động mọi lúc), bạn có thể ước tính ngày tạo tài khoản Facebook bằng cách tìm ngày tạo bài đăng cũ nhất (bạn có thể tìm thấy một số mã để làm điều đó here).

Một cách tiếp cận khác được giải thích here. Nó cho thấy cách tìm ra ngày tạo tài khoản Facebook mà không cần phải gọi API Facebook, chỉ dựa trên UID Facebook của người dùng. Bạn cũng có thể tải xuống here bảng tra cứu hiển thị mối tương quan giữa UID Facebook và Ngày tạo tài khoản Facebook.

5

Tôi đã suy nghĩ - có thể ID sẽ là một công cụ hữu ích. Mỗi lần người dùng tạo các tài khoản mới, nó sẽ nhận được ID cao hơn. Tôi googled và thấy rằng có một phương pháp để ước tính ngày tạo ra accout bởi ID và Massoud Seifi từ metadatascience.com thu thập một số dữ liệu tốt về nó. enter image description here

đọc bài viết này:

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

và đây là một số ID để downlaod:

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

+1

Giải pháp này là tốt nhất, nhưng tôi nghĩ nó không còn nữa hoạt động, kể từ khi giới thiệu các id người dùng có phạm vi ứng dụng, thêm thông tin tại đây: https://developers.facebook.com/docs/apps/upgrading/#upgrading_v2_0_user_ids –

+1

Tôi đã sử dụng phương pháp này trong năm qua và tôi có thể xác nhận rằng nó không hoạt động nữa. – Coccodrillo

0

Nếu bạn đang thực sự cố gắng để tìm thấy khi nào một người dùng tham gia Facebook, Tôi đồng ý với câu trả lời của người khác.

Cách tốt nhất tôi có thể tìm ra (cũng là rẻ hơn hơn là phải nhắc lại qua tấn bài đăng) đang truy cập "hình ảnh hồ sơ" sớm nhất của người dùng. Điều này làm cho giả định rằng người dùng sẽ đăng ảnh hồ sơ ngay sau khi tạo tài khoản của họ.

Hoặc tại sao không chỉ sử dụng Ảnh hồ sơ album? Khi bạn có thể truy cập album "Ảnh hồ sơ", bạn có thể sử dụng trường created_time cho album (hoặc sắp xếp Ảnh hồ sơ theo created_time cho từng ảnh).

Ngay cả khi ảnh sớm nhất bị xóa, cơ hội mà người dùng vẫn không có bất kỳ ảnh hồ sơ nào trong một thời gian dài là gì?

tham khảo: https://developers.facebook.com/docs/graph-api/reference/v2.0/album

1

Sử dụng hình ảnh gợi ý hồ sơ, đây là cách tôi đã làm nó: Có lẽ không phải là cách tốt nhất nhưng điều này là tốt nhất tôi có thể làm gì với kiến ​​thức C mục tiêu thực tế của tôi

__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; 
       } 
      } 
    } 
]; 

với

localDateYYYYMMDD = [[NSDateFormatter alloc] init]; 
[localDateYYYYMMDD setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
[localDateYYYYMMDD setDateFormat:@"yyyy-MM-dd"]; 
Các vấn đề liên quan