Я бы хотел (а) получить идентификатор в Facebook из ShareKit У кого есть идеи? Есть эта ссылка, но я все равно не понимаю. ReferenceКак получить идентификатор Facebook из ShareKit
ТИА
Я бы хотел (а) получить идентификатор в Facebook из ShareKit У кого есть идеи? Есть эта ссылка, но я все равно не понимаю. ReferenceКак получить идентификатор Facebook из ShareKit
ТИА
Я получил это с помощью запроса: -
Facebook *facebook = [[Facebook alloc] initWithAppId:SHKCONFIG(facebookAppId)
urlSchemeSuffix:SHKCONFIG(facebookLocalAppId)
andDelegate:nil];
// ... do authorization stuff
// when authorized...
[facebook requestWithGraphPath:@"me" andDelegate:self];
и реализации делегата обратного вызова в том же файле: -
- (void)request:(FBRequest *)request didLoad:(id)result
{
NSString *fbid = [result objectForKey:@"id"];
NSLog(@"facebook ID %@", fbid);
}
Это делает работу, но Я не знаю, является ли это рекомендуемой техникой, так как это первый раз, когда я использовал sharekit. Мне кажется странным, что метод singleton [SHKFacebook facebook]
является конфиденциальным, и вам нужно создать экземпляр объекта самостоятельно.
ShareKit имеет встроенный метод для этого:
[SHKFacebook getUserInfo];
Я предпочитаю называть это используя свой собственный переменный-член и проверку возвращаемых значений внутри SHKShareDelegate обратного вызова:
SHKItem *item = [[[SHKItem alloc] init] autorelease];
item.shareType = SHKShareTypeUserInfo;
[self.shkFacebook setItem:item];
[self.shkFacebook share];
Вот обратный вызов в делегат метод shareFinishedSending():
if ([sharer isEqual:self.shkFacebook] &&
sharer.item.shareType == SHKShareTypeUserInfo) {
NSDictionary *facebookUserInfo = [[NSUserDefaults standardUserDefaults] objectForKey:@"kSHKFacebookUserInfo"];
NSLog(@"id: %@", [facebookUserInfo objectForKey:@"id"]);
NSLog(@"name: %@ %@", [facebookUserInfo objectForKey:@"first_name"], [facebookUserInfo objectForKey:@"last_name"]);
NSLog(@"email: %@", [facebookUserInfo objectForKey:@"email"]);
}
Да, это то, что я закончил делать, это работает. Спасибо! – ordinaryman09