Pav*_*tha 2 facebook fetch ios
我正在尝试开发一个简单的应用程序,当用户连接到Facebook时,它会从Facebook检索数据.我试过这个代码.
NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_birthday",@"user_hometown",@"user_location",@"email",@"basic_info", nil];
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
}];
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"%@", [result objectForKey:@"gender"]);
NSLog(@"%@", [result objectForKey:@"hometown"]);
NSLog(@"%@", [result objectForKey:@"birthday"]);
NSLog(@"%@", [result objectForKey:@"email"]);
}];
Run Code Online (Sandbox Code Playgroud)
但是当我运行这段代码时,它会给出一个错误"FBSDKLog:对端点请求的错误'我':必须为这个端点的调用指定一个开放的FBSession."
在此先感谢,非常感谢您的帮助.
错误是非常合适的,它试图说的是一旦会话打开就应该调用请求连接方法.现在你的
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
}];
Run Code Online (Sandbox Code Playgroud)
方法返回BOOL值true或false以指定您是否打开会话(它尝试同步打开).因此,首先检查此调用的结果,并将其放在代码中以获取信息.例如.
if (FBSession.activeSession.isOpen)
{
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"%@", [result objectForKey:@"gender"]);
NSLog(@"%@", [result objectForKey:@"hometown"]);
NSLog(@"%@", [result objectForKey:@"birthday"]);
NSLog(@"%@", [result objectForKey:@"email"]);
}];
}
Run Code Online (Sandbox Code Playgroud)
这应该删除你的错误,但你仍然可能无法得到结果.你可能会或可能不会在第一次调用此代码时获得结果,但每当调用完成处理程序的代码时,此方法FBRequestConnection也将被调用,并且那个时候你会得到结果,因为它是异步调用.
如果它仍然无法运行试试这个
if (FBSession.activeSession.isOpen)
{
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error)
{
NSLog(@"error:%@",error);
}
else
{
// retrive user's details at here as shown below
NSLog(@"FB user first name:%@",user.first_name);
NSLog(@"FB user last name:%@",user.last_name);
NSLog(@"FB user birthday:%@",user.birthday);
}
}];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4494 次 |
最近记录: |