8

今天我开始使用适用于 iOS 的 Facebook SDK 3.0,我意识到不再有FBDialog类。我在developers.facebook.com上搜索了一些如何使用新sdk 显示提要对话框的教程。

我们曾经写过:

[facebook dialog:@"feed" andParams:params andDelegate:self];

但是,似乎所有关于对话框的提示都与developers.facebook.com中的旧 SDK 有关。

有人用新的 SDK 实现了提要对话框吗?

或者,我们是否应该构建自己的DialogViewController以将所有 UI 元素表示为 textFields,发送按钮以进行FBRequest?!

4

2 回答 2

13

我在这里找到了答案:
Feed Dialog - Facebook Developers

使用相同的新 SDK 3.x,我们必须将弃用的标头添加到 Frameworks:中

在此处输入图像描述

在此处输入图像描述

并更改:

#import <FacebookSDK/FacebookSDK.h>

#import "Facebook.h"


编辑(26.02.2013):

感谢Andreas,他在评论中提到,使用新的SDK 3.2不再需要包含已弃用的类:

改进的 Web 对话框支持:此版本增加了对集成 Web 对话框、提要对话框请求对话框的支持,而无需调用已弃用的标头,从而使将对话框添加到您的应用程序中更加简洁和容易。

例子:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
     @"", @"name",
     @"", @"caption",
     @"", @"description",
     @"https://website.com/share", @"link",
     @"http://website.com/iossdk_logo.png", @"picture",
     nil];
[FBWebDialogs presentFeedDialogModallyWithSession:nil
                                       parameters:params
                                          handler:
         ^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
             if (error) {
                 // Error launching the dialog or publishing a story.
                 NSLog(@"Error publishing story.");
             } else {
                 if (result == FBWebDialogResultDialogNotCompleted) {
                     // User clicked the "x" icon
                     NSLog(@"User canceled story publishing.");
                 } else {
                     // Handle the publish feed callback
                 }
             }
        }];
于 2012-08-25T13:09:22.530 回答
3

使用 Facebook SDK 3.2,您不再需要导入已弃用的标头。可以使用 FBWebDialogs 类呈现基于 Web 的对话框:

[FBWebDialogs presentFeedDialogModallyWithSession:nil parameters:params handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
    // ...
}];
于 2013-02-26T15:02:56.227 回答