iOS6通讯簿中的Facebook社交档案

iOS6通讯簿中的Facebook社交档案,ios6,abaddressbook,Ios6,Abaddressbook,我正在尝试通过iOS中的通讯录API访问联系人的Facebook ID。该代码适用于我手动输入联系人的个人资料,但它不会返回自动同步的Facebook帐户的社交资料(在iOS6中)。仅供参考,它会返回同步联系人的姓名、电子邮件和电话号码。有没有办法获取从Facebook检索到的联系人的Facebook ID 以下是我正在使用的代码: ABMultiValueRef profiles = ABRecordCopyValue(record_, kABPersonSocialProfileProper

我正在尝试通过iOS中的通讯录API访问联系人的Facebook ID。该代码适用于我手动输入联系人的个人资料,但它不会返回自动同步的Facebook帐户的社交资料(在iOS6中)。仅供参考,它会返回同步联系人的姓名、电子邮件和电话号码。有没有办法获取从Facebook检索到的联系人的Facebook ID

以下是我正在使用的代码:

ABMultiValueRef profiles = ABRecordCopyValue(record_, kABPersonSocialProfileProperty);
CFIndex multiCount = ABMultiValueGetCount(profiles);
for (CFIndex i=0; i<multiCount; i++) {
    NSDictionary* profile = (__bridge NSDictionary*)ABMultiValueCopyValueAtIndex(profiles, i);
    NSLog(@"Profile: %@", profile);
}
CFRelease(profiles);
ABMultiValueRef profiles=ABRecordCopyValue(记录,kapersonsocialprofileproperty);
CFIndex multiCount=ABMultiValueGetCount(配置文件);

对于(CFIndex i=0;i我在我的联系人列表中尝试了您的代码,但它没有为同步或显式添加的联系人提供FB-ID。 这是我可以通过Facebook个人资料获得的明确添加联系人的信息

2012-10-29 13:18:06.315联系人[6208:907]个人资料:{ 服务=facebook; url=”http://www.facebook.com/????"; 用户名=??;}

(抱歉,无法发布图像)

现在,我正在使用graph API获取用户ID,如下所示:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@", [(__bridge NSDictionary *)ABMultiValueCopyValueAtIndex(rec, 0) objectForKey:@"username"]]]];
if (data) {
  NSError *error = nil;
  tContact.fbDetails = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
  tContact.fbID = [tContact.fbDetails objectForKey:@"id"];
}
NSLog(@"fbID:%@ fbDetails:%@", tContact.fbID, tContact.fbDetails);

仍希望查看是否有人能够从Contacts.app本身获取FB-ID。

KabbersonSocialProfileProperty返回有限的信息,除非用户实际手动单击设置图标,否则Facebook图标允许Facebook应用首先在其iOS设备上同步详细信息。一旦发生这种情况,您可以获取所有Kabbers由通讯簿中的应用程序启动的链接联系人中的OnSocialProfile属性参数

见我的自我回答问题: