【问题标题】:Facebook IOS SDK 3.1 - reauthorizeWithPublishPermissions?Facebook IOS SDK 3.1 - reauthorizeWithPublishPermissions?
【发布时间】:2012-09-18 05:06:07
【问题描述】:

刚刚升级到 Facebook iOS SDK 3.1 并且已经遇到问题。

我的应用找不到 facebook 方法 reauthorizeWithPublishPermissions,而且它也不知道静态 FBSessionDefaultAudienceFriends 定义是什么!

其他人看到这些问题吗?不敢相信3.1 SDK会有这些基本的bug,所以我现在责备我的愚蠢!!

为了完整起见,这是我的代码:

[FBSession reauthorizeWithPublishPermissions:[NSArray arrayWithObjects:@"publish_stream", @"publish_actions",nil]
    defaultAudience:FBSessionDefaultAudienceFriends 
    completionHandler:^(FBSession *session, NSError *error) {

        // Do something...

}];

谢谢。

【问题讨论】:

  • 必须询问并检查您是否已正确链接到新 SDK(已清理项目等)。它们肯定都在 FBSession.h 中!
  • 谢谢詹姆斯,一记耳光!也正如 Zotter 所说,它是一个实例方法。

标签: iphone ios facebook sdk


【解决方案1】:

@Zotter,答案已贬值。现在(使用最新的 Facebook iOS SDK,我猜是 v.3.19)您必须使用 - (void)requestNewReadPermissions:(NSArray *)readPermissions completionHandler:(FBSessionRequestPermissionResultHandler)handler; 方法来授权具有发布权限的应用程序。

[FBSession.activeSession requestNewPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
    if(!error) {

    }
}];

【讨论】:

    【解决方案2】:
     /*! No audience needed; this value is useful for cases where data will only be read from Facebook */
    
        FBSessionDefaultAudienceNone                = 0,
        /*! Indicates that only the user is able to see posts made by the application */
        FBSessionDefaultAudienceOnlyMe              = 10,
        /*! Indicates that the user's friends are able to see posts made by the application */
        FBSessionDefaultAudienceFriends             = 20,
        /*! Indicates that all Facebook users are able to see posts made by the application */
        FBSessionDefaultAudienceEveryone            = 30,
    

    【讨论】:

      【解决方案3】:

      reauthorizeWithPublishPermissions:是一个实例方法

        [FBSession.activeSession reauthorizeWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends completionHandler:
           ^(FBSession *session,
             NSError *error)
           {
               ...
           }];
      

      【讨论】:

        【解决方案4】:

        我遇到了这个问题。我使用的是旧版本的 Cocoapods,它没有将源代码从 3.0 正确升级到 3.1。如果您使用的是 Cocoapods,请升级到 0.14.0 并重试。如果没有,请仔细检查以确保您拥有来自 master 的最新 Facebook SDK - 如果您在 FBSession.h 中没有看到这些值,则您可能拥有旧版本的 SDK。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-20
          • 2012-10-08
          • 1970-01-01
          相关资源
          最近更新 更多