确定用户何时创建 Facebook 帐户

Posted

技术标签:

【中文标题】确定用户何时创建 Facebook 帐户【英文标题】:determine when user created facebook account 【发布时间】:2011-11-12 01:48:09 【问题描述】:

我正在尝试确定用户何时加入 Facebook。到目前为止,我想出的是扫描用户的第一张个人资料图片(我似乎记得在早期,Facebook 强迫您上传个人资料图片)并从那里获取时间戳。我也想过用墙贴做同样的事情......

有没有人知道如何获得有关用户何时创建帐户的最准确信息?

【问题讨论】:

谷歌了一下,好像没有。 【参考方案1】:

没有办法获得此字段,但许多应用程序所做的近似此字段是拍摄“个人资料图片”相册中最旧的照片 - 对我而言,这是在我实际注册日期的一周内

【讨论】:

个人资料图片是我能想到的最好的,其他帖子在 2009 年 6 月之前(大约)不可用,所以照片是最容易搜索到过去的 只要个人资料所有者没有从个人资料图片相册中删除旧照片,这将起作用。它总是至少与该相册中最旧的照片一样旧,但如果所有者在他的相册中进行了一些清理,它可能会更旧。【参考方案2】:

我在想 - 也许 ID 会是一个有用的工具。每次用户创建新帐户时,它都应该获得更高的 ID。我搜索了一下,发现有一种方法可以通过 ID 估计帐户创建日期,并且来自 metadatascience.com 的 Massoud Seifi 收集了一些关于它的好数据。

阅读这篇文章:

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

这里有一些要下载的 ID:

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

【讨论】:

这个解决方案是最好的,但我认为它不再有效,因为引入了应用范围的用户 ID,更多信息在这里:developers.facebook.com/docs/apps/upgrading/… 我去年一直在使用这种方法,我可以确认它不再起作用了。【参考方案3】:

除了查看最老用户的个人资料图片或相册(并非一直有效)之外,您还可以 通过查找最早的用户帖子的创建日期估计 Facebook 帐户创建日期(您可以找到一些代码用于执行此操作here)。

here 解释了另一种方法。它展示了如何仅根据用户的 Facebook UID 计算 Facebook 帐户的创建日期,而无需调用 Facebook API。您还可以下载here 查找表,其中显示了 Facebook UID 和 Facebook 帐户创建日期之间的相关性。

【讨论】:

【参考方案4】:

使用个人资料图片建议,我是这样做的: 也许不是最好的方法,但这是我能用我的实际客观 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;
              
          
    
 ];

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

【讨论】:

【参考方案5】:

如果您确实想查找用户何时加入 Facebook,我同意其他人的回答。

我能找到的最好方法(这也比通过大量帖子重申要便宜)是访问用户最早的“个人资料图片”。这是假设用户在创建帐户后不久会发布个人资料图片。

或者为什么不使用个人资料图片相册? 一旦您可以访问“个人资料图片”相册,您就可以使用相册的 created_time 字段(或按 created_time 对个人照片排序个人资料图片)。

即使最早的照片被删除,用户长时间没有任何头像的可能性有多大?

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

【讨论】:

以上是关于确定用户何时创建 Facebook 帐户的主要内容,如果未能解决你的问题,请参考以下文章

如何打开Facebook网页?

如何检测用户何时从 Facebook 删除应用

从“设置”访问帐户时,不使用 SLComposeviewcontroller 将图像发布到 Facebook

iOS:通过自动登录获取 Facebook 访问令牌

没有下一个用于在 Facebook 的商业帐户图形 API 上获取 instagram 媒体的网址

适用于 iOS 的 Facebook 开放图?