Buy*_*ian 15 iphone facebook objective-c ios6
是否可以使用内置的iOS 6 Facebook集成来获取用户的基本信息(电子邮件地址,生日等)?我见过的所有文档/示例都使用iOS 6集成来简单地打开一个SLComposeViewController.
感谢您的时间.
Dan*_*iel 31
请查看我的示例项目.它允许您将视频上传到Facebook,但它还包括获取信息的方法,您应该查看文件ViewController.m,标签控制器中标记为"Native" 的文件.
https://bitbucket.org/danielphillips/fb-video-upload
您需要导入Social和Accounts框架以执行您想要的操作.您要求访问用户Facebook帐户ACAccountStore,如果您被授予访问权限,那么您使用此帐户创建一个SLRequest包含您想要的参数,在这里您需要图形对象"/ me".
属性:
@property (nonatomic, retain) ACAccountStore *accountStore;
@property (nonatomic, retain) ACAccount *facebookAccount;
Run Code Online (Sandbox Code Playgroud)
认证:
- (IBAction)getMeButtonTapped:(id)sender {
if(!_accountStore)
_accountStore = [[ACAccountStore alloc] init];
ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[_accountStore requestAccessToAccountsWithType:facebookTypeAccount
options:@{ACFacebookAppIdKey: @"483616868329082", ACFacebookPermissionsKey: @[@"email"]}
completion:^(BOOL granted, NSError *error) {
if(granted){
NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount];
_facebookAccount = [accounts lastObject];
NSLog(@"Success");
[self me];
}else{
// ouch
NSLog(@"Fail");
NSLog(@"Error: %@", error);
}
}];
}
Run Code Online (Sandbox Code Playgroud)
得到"我":
- (void)me{
NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];
SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];
merequest.account = _facebookAccount;
[merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"%@", meDataString);
}];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13109 次 |
| 最近记录: |