我正在尝试通过发送FBRequest来获取朋友的生日,地点和名称,并在不同视图的桌面上显示结果。但我总是收到零响应。我首先设置了权限,然后使用必填字段创建了一个请求:
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_birthday",@"friends_hometown",
@"friends_birthday",@"friends_location",
nil];
if (!FBSession.activeSession.isOpen) {
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
} else if (session.isOpen) {
NSLog(@"permissions::%@",session.permissions);
NSLog(@"Open");
FTBFriendTableViewController *ftbFriendTableViewController= [[FTBFriendTableViewController alloc] initWithNibName:@"FTBFriendTableViewController" bundle:nil];
FTBAppDelegate *delegate=(FTBAppDelegate*)[[UIApplication sharedApplication] delegate];
if (ftbFriendTableViewController.friendList == nil){
ftbFriendTableViewController.friendList = [[NSMutableArray alloc] init];
}
FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,birthday,location"];
[ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
ftbFriendTableViewController.friendList = [result objectForKey:@"data"];
for (FBGraphObject<FBGraphUser> *friend in test) {
NSLog(@"%@:%@", [friend name],[friend birthday]);
}}];
delegate.window.rootViewController = ftbFriendTableViewController;
}
}];
return;
}
我还在应用程序plist中设置了FacebookAppID,FacebookDisplayName和URL标识符。这是发送的实际请求:
FBRequest:0x94c1080,session:0xa1c5600,graphPath:me / friends?fields = name,birthday,location,HTTPMethod:GET,parameters:{ “migration_bundle”=“fbsdk:20130409”; }
知道还有什么可以导致无响应问题吗?谢谢!
答案 0 :(得分:2)
我发现了这个问题。在.plist中添加“URL类型”参数时,XCode默认添加“URL标识符”。对于Facebook应用程序,我们应该添加“URL Schemes”而不是“URL identifier”并将fb [FacebookAppID]指定为值。