この質問に iOS 6 というタグを付けたのを見たので、iOS 6 と Facebook の統合を使用できる iOS 6 デバイス用にこのゲームを開発していると思います。
一度やった方法を説明しました(https://stackoverflow.com/a/14151853/1449151)が、とにかくここに入れました。iOS 6 の Facebook 統合を使用したい場合は、次の手順に従って、すべてが正しく行われたことを確認してください。(たとえば、あなたの許可はゼロです。以下の方法を参照してください)。それが役に立てば幸い:
OK ここでは、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 に統合されている間、好きなことを行うことができます。
もう 1 つ、Facebook でアプリの設定を確認し、iOS 用のアプリや iPhone/iPad 用の ID を有効にするなどの構成を確認してください。plist の FacebookAppID も。
それがうまくいくかどうか教えてください。
編集: 私の Facebook SDK は 3.1.1 btw です。