Facebook身份验证不会自动关闭
我正在尝试将FacebookConnect SDK集成到iOS平台上的cocos2d-x游戏中 我正在使用apiFacebook身份验证不会自动关闭,facebook,ios6,Facebook,Ios6,我正在尝试将FacebookConnect SDK集成到iOS平台上的cocos2d-x游戏中 我正在使用api [FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:TRUE completionHandler:^(FBSession *session, FBSessionState sta
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:TRUE
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
{
if(state == FBSessionStateOpen)
NSLog(@"Success");
}
对话框不会在按OK时关闭,但是completionHandler会在
FBSessionStateOpen
状态下成功执行。我看到您将此问题标记为iOS 6,因此我假设您正在为iOS 6设备开发此游戏,您将能够使用iOS 6与Facebook集成
我曾经解释过我是怎么做的,但我还是把它放在这里了。如果你想使用iOS 6与Facebook的集成,你可以按照以下步骤来确保所有步骤都是正确的。(例如,我看到您的许可为零,请参见下面我是如何做到的)。希望有帮助:
好的,下面是我如何与iOS 6集成并从Facebook获得我想要的东西:
在AppDelegate中,我执行以下操作:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
return [FBSession.activeSession handleOpenURL:url];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[FBSession.activeSession handleDidBecomeActive];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
[FBSession.activeSession close];
}
在我的ViewController中,我希望检索关于我自己或我朋友的信息,我会这样做(注意:这是一个测试,所以有很多权限!)
然后在“presentPostOptions”中,我这样做(在本例中,我尝试从我的朋友那里检索一些内容):
-(无效)presentPostOptions
{
[[FBRequestFormyFriends]startWithCompletionHandler:^(FBRequestConnection*连接,NSDictionary*用户,NSError*错误)
{
如果(!错误){
NSArray*数据=[user objectForKey:@“data”];
NSLog(@“%d”,数据计数];
用于(FBGraphObject*数据中的朋友){
NSLog(@“%@,[朋友的名字]);
NSLog(@“%@,[朋友姓氏]);
NSLog(@“%@,[friend id]);
//确保您的视图中有FBProfilePictureView插座
//否则跳过个人资料图片!
self.fbProfilePic.profileID=@“您是朋友的profile.id”;
}
}
其他的
{
NSLog(@“错误”);
//[错误:错误];
}
}];
我不知道你还想做什么,因为在你的问题中,你只是试图建立一个连接,但这样你就可以在集成到iOS 6时做任何你想做的事情
还有一件事,确保你在Facebook上的应用程序设置和那里的配置,比如启用你的iOS应用程序和iPhone/iPad的ID。还有你的plist中的FacebookAppID
如果对你有好处就告诉我
编辑:我的Facebook SDK是3.1.1 btw
NSArray *permissions =
[NSArray arrayWithObjects:@"email", @"user_location",
@"user_birthday",
@"user_likes", @"user_interests",@"friends_interests",@"friends_birthday",@"friends_location",@"friends_hometown",@"friends_photos",@"friends_status",
@"friends_about_me", @"friends_birthday", @"friends_hometown", @"friends_interests", @"friends_likes", @"friends_location", nil];
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
/* handle success + failure in block */
if (status) {
NSLog(@"Facebook Read Permission is successful!");
[self presentPostOptions];
// [self presentPostOptions];
}
}];
- (void)presentPostOptions
{
[[FBRequest requestForMyFriends] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error)
{
if (!error) {
NSArray *data = [user objectForKey:@"data"];
NSLog(@"%d", [data count]);
for (FBGraphObject<FBGraphUser> *friend in data) {
NSLog(@"%@", [friend first_name]);
NSLog(@"%@", [friend last_name]);
NSLog(@"%@", [friend id]);
//make sure you have FBProfilePictureView outlet in your view
//otherwise skip the profile picture!
self.fbProfilePic.profileID = @"you'r friend's profile.id";
}
}
else
{
NSLog(@"error");
// [self didFailWithError:error];
}
}];