4

我正在开发一个 ios phonegap 应用程序。对于注册,我使用phonegap facebook 插件。它第一次运行良好。但是现在当我尝试注册时它不起作用。我没有改变任何东西。我使用 Xcode 4.6.1 版和 cordova 2.4.0 版。

在此处输入图像描述

图显示了我的 Facebook 开发者页面。

我究竟做错了什么?

请帮忙,谢谢。

4

6 回答 6

9

我认为这将解决您的问题:

  1. 在您的 Facebook 帐户中访问您的 Facebook 应用程序。
  2. 单击编辑您的应用程序。
  3. 转到基本信息选项卡。
  4. 沙盒模式:选中此项为禁用
  5. 保存设置。

这对你有用。

于 2013-04-17T05:21:51.897 回答
6

首先确保您的 Bundle Id 应该是正确的。

并像这样更改您的设置

在此处输入图像描述

更改沙盒设置已禁用。

还可以更改您的 P-list 设置

在此处输入图像描述

它会正常工作。如果您将再次遇到此问题,请告诉我。

于 2013-04-17T05:23:31.910 回答
1

如果您收到警告“访问令牌已贬值”。请在您将权限传递给您的应用程序的这两行中添加或替换您的代码行

[FBSession.activeSession closeAndClearTokenInformation]; 

NSArray *permissions = [NSArray arrayWithObjects:@"email", nil];

如果您做的所有事情都正确,请检查“状态”值。如果是 257,那么请在您的 iPhone facebook 设置中启用您的应用程序。

这是可以帮助您更好地理解的代码

   [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:^(FBSession *session,
                                                                                                     FBSessionState status, NSError *error)
     {
      if (error)
      {
              NSLog(@"error===%@   status====%u",error,status);
              // Handle errors
                 [self handleAuthError:error];
         }
         else if (FB_ISSESSIONOPENWITHSTATE(status))
         {
             [self getData];
         }
     }];


-(void)handleAuthError:(NSError *)error{
    NSString *alertMessage, *alertTitle;

    if (error.fberrorShouldNotifyUser) {
        // If the SDK has a message for the user, surface it.
        alertTitle = @"Something Went Wrong";
        alertMessage = error.fberrorUserMessage;
    } else if (error.fberrorCategory == FBErrorCategoryUserCancelled) {
        // The user has cancelled a login. You can inspect the error
        // for more context. For this sample, we will simply ignore it.
        NSLog(@"user cancelled login");
    } else {
        // For simplicity, this sample treats other errors blindly.
        alertTitle  = @"Unknown Error";
        alertMessage = @"Error. Please try again later.";
        NSLog(@"Unexpected error:%@", error);
    }

    if (alertMessage) {
        [[[UIAlertView alloc] initWithTitle:alertTitle
                                    message:alertMessage
                                   delegate:nil
                          cancelButtonTitle:@"OK"
                          otherButtonTitles:nil] show];
    }
}

我希望它会奏效。

于 2013-04-17T07:15:55.250 回答
0

下载 Facebook 新版本,它应该可以工作。我对 sdk 版本 3.13.1 有同样的错误。然后,我用 sdk 版本 3.14.1 替换它。然后,它对我有用。

于 2014-06-18T09:45:52.493 回答
0

还有一种情况是您的 info.plist 中的 URL 类型数组中有 2 个或更多项。Facebook 相关项目应该是第一个,否则会出现错误 2。这可能是 Facebook SDK 错误。

于 2013-06-21T13:54:28.253 回答
0

这对我有用:

转到 iPhone 的设置应用程序。打开您的 Facebook 设置 向下滚动到您的应用,并确保您的应用允许 Facebook 交互。

于 2013-12-20T07:34:25.930 回答