确定用户何时创建 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 帐户的主要内容,如果未能解决你的问题,请参考以下文章
从“设置”访问帐户时,不使用 SLComposeviewcontroller 将图像发布到 Facebook