我正在尝试将Facebook-Connect SDK集成到iOS平台上的cocos2d-x游戏中。
我正在使用api,
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:TRUE
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
{
if(state == FBSessionStateOpen)
NSLog(@"Success");
}
对话框在按下时没有关闭,但是completionHandler在FBSessionStateOpen
状态下成功执行。
答案 0 :(得分:0)
我看到你在iOS 6上标记了这个问题所以我假设你正在为iOS 6设备开发这款游戏,你可以使用iOS 6与Facebook集成。
我解释了我是如何做到的(https://stackoverflow.com/a/14151853/1449151),但无论如何我把它放在这里。如果您想使用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中,我想要检索有关我自己或朋友的信息,我这样做(注意:这是一个测试,所以它有很多权限!):
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];
}
}];
然后在“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];
}
}];
我不知道你还想做什么,因为在你的问题中你只是试图建立连接,但这样你就可以在iOS 6中集成任何你想要的东西。
还有一件事,请确保您在Facebook上的应用设置以及那里的配置,例如启用iOS应用和iPhone / iPad ID。还有你的plist中的FacebookAppID。
让我知道它是否适合您,
编辑:我的Facebook SDK是3.1.1顺便说一句。