2012-10-15 6 views
1

문제가 있습니다. 내 주소록에서 연락처를 가져 오는 ios 6 앱을 만들고 있지만 페이 스 북 (Facebook)으로 연락처 옵션을 사용하도록 설정 한 경우 내 주소록과 페이스 북에서 모든 연락처를 가져올 수 있으며 코드가없는 경우 가능합니다. 페이 스북 연락처. 같은 이름의 연락처를 병합하거나 병합하거나 @ facebook.com을 사용하여 연락처가있는 연락처 만 삭제하십시오.동기화 연락처가 ios 6의 Facebook 주소록을 사용 중지합니다.

다른 해결책?

답변

0

@ facebook.com 이메일 주소를 확인하는 것이 신뢰할 수 없습니다. 사용자는 게시하지 않기로 선택할 수 있으며 Facebook 주소가 아닌 주소록에서는 전자 메일 주소로 사용할 수 있습니다.

주소록에 ExternalRepresentation이라는 특별한 필드가있어 페이스 북 연락처에서 동기화 된 것에 대한 추가 정보를 가지고있는 것으로 보입니다. 이것의 첫 번째 부분은 항상 같아 보입니다.

경고 :이 기능은 항상 작동하지 않을 수 있으며 앞으로 언젠가는 중단 될 수 있습니다. 이것은 서류 미비입니다.

static NSData *facebookExtRepPrefix = [NSData dataWithBytes:"bplist00\xd4\x01\x02\x03" length:12]; 
#define kABPersonExternalRepresentationProperty 39 

NSData *extRep = (__bridge NSData *)ABRecordCopyValue(theRecord, kABPersonExternalRepresentationProperty); 
BOOL isFacebook = [[extRep subdataWithRange:NSMakeRange(0, facebookExtRepPrefix.length)] isEqualToData:facebookExtRepPrefix]; 

그런 다음 kABPersonPersonLinkProperty (# 42)를 읽을 수는 - 그 값은 연결되어 네이티브 접촉에 동일합니다.

0

에 기본 소스 (예 : ABAddressBookCopyDefaultSource)를 사용하면 나에게 전화 연락처 (Facebook 연락처가 아님)를 제공했습니다.

주소록에있는 사람들의 수를 ABAddressBookGetPersonCount으로 바꾸는 대신에 (위에서 나온) allPeople 배열을 사용하여 사람 수를 얻었습니다.

if (accessGranted) { 

    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error); 
    ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook); 
    CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByFirstName); 

    CFIndex nPeople = CFArrayGetCount(allPeople);//Not ABAddressBookGetPersonCount(addressBook) as that returns all contacts, Facebook included; 
    items = [NSMutableArray arrayWithCapacity:nPeople]; 


    for (int i = 0; i < MIN(nPeople, 20); i++) 
    { 

     ABRecordRef person = CFArrayGetValueAtIndex(allPeople, i); 

     //Do something with this person 
    } 
} 

참조 : ... 내가 페이스 북의 연락처를 제거 할 https://stackoverflow.com/a/17976915/1349663

+0

을 어떻게 연락처 목록에서 페이스 북의 연락처를 제거하는 말씀 해주십시오 수 있습니다 모든 연락처를 가져 오기 –

관련 문제