2013-07-23 61 views
2

我按照Facebook开发人员网站这两个教程后 https://developers.facebook.com/docs/tutorials/ios-sdk-games/requests/没有收到任何 “请求” 从Facebook的iOS版SDK发出

https://developers.facebook.com/docs/howtos/send-requests-using-ios-sdk/#step2

这是我的代码:

[FBWebDialogs presentRequestsDialogModallyWithSession:nil 
    message:[NSString stringWithFormat:@"I just smashed %u friends! Can you beat it?", score] 
    title: nil 
    parameters:params 
    handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) 
    { 
     if (error) 
     { 
      // Case A: Error launching the dialog or sending request. 
      UIAlertView* alert = [[UIAlertView alloc] initWithTitle: @"Facebook" message: error.description delegate: nil cancelButtonTitle: @"Ok" otherButtonTitles: nil]; 
      [alert show]; 
      [alert release]; 
     } 
     else 
     { 
      if (result == (FBWebDialogResultDialogCompleted)) 
      { 
       // Handle the publish feed callback 
       NSDictionary *urlParams = [self parseURLParams:[resultURL query]]; 

       if ([urlParams valueForKey: @"request"]) 
       { 
        // User clicked the Share button 
        NSLog(@"Send"); 
       } 
      } 
     } 
    }]; 

问题在于我发出请求后,我的朋友告诉我他没有收到FB通知中心网站的任何通知/请求。有谁知道为什么?

这是我所做过的一切:

  1. 我的info.plist和Facebook的应用程序正确已经设置。

  2. 我没有使用沙盒模式。

  3. 我目前的应用程序能够登录并发布到墙上。我的publish_actions权限。

  4. 我没有收到任何错误或警告。

回答

0

使用,它会帮助你:

-(void)openFacebookAuthentication 
{ 
    NSArray *permission = [NSArray arrayWithObjects:kFBEmailPermission,kFBUserPhotosPermission, nil]; 

    FBSession *session = [[FBSession alloc] initWithPermissions:permission]; 

    [FBSession setActiveSession: [[FBSession alloc] initWithPermissions:permission] ]; 

    [[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 

     switch (status) { 
      case FBSessionStateOpen: 
       [self getMyData]; 
       break; 
      case FBSessionStateClosedLoginFailed: { 
       // prefer to keep decls near to their use 
       // unpack the error code and reason in order to compute cancel bool 
       NSString *errorCode = [[error userInfo] objectForKey:FBErrorLoginFailedOriginalErrorCode]; 
       NSString *errorReason = [[error userInfo] objectForKey:FBErrorLoginFailedReason]; 
       BOOL userDidCancel = !errorCode && (!errorReason || [errorReason isEqualToString:FBErrorLoginFailedReasonInlineCancelledValue]); 

       //Added by Rigel Networks July 2, 2013 to solve Facebook Cancel button popup issue 
       if(error.code == 2 && ![errorReason isEqualToString:@"com.facebook.sdk:UserLoginCancelled"]) { 
        UIAlertView *errorMessage = [[UIAlertView alloc] initWithTitle:kFBAlertTitle 
                      message:kFBAuthenticationErrorMessage 
                      delegate:nil 
                      cancelButtonTitle:kOk 
                      otherButtonTitles:nil]; 
        [errorMessage performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES]; 
        errorMessage = nil; 
        } 
       } 
       break; 
       // presently extension, log-out and invalidation are being implemented in the Facebook class 
      default: 
       break; // so we do nothing in response to those state transitions 
     } 
    }]; 
    permission = nil; 
} 
相关问题