【问题标题】:Sending a link with Facebook Message Dialog ignoring all params使用 Facebook 消息对话框发送链接,忽略所有参数
【发布时间】:2014-05-22 13:32:48
【问题描述】:

我正在尝试通过在 v2.0 中实现的新 Facebook 消息对话框分享/发送链接给朋友。

我一直遵循文档的指示:https://developers.facebook.com/docs/ios/share#message-dialog-getting-started 这就是我尝试过的:

    [FBDialogs presentMessageDialogWithLink:[NSURL URLWithString:@"http://XXX.net/"] name:@"NAME" caption:@"CAPTION" description:@"DESCRIPTION" picture:nil clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
            if(error) {
                // An error occurred, we need to handle the error
                // See: https://developers.facebook.com/docs/ios/errors
                NSLog([NSString stringWithFormat:@"Error messaging link: %@", error.des

cription]);
        } else {
            // Success
            NSLog(@"result %@", results);
        }
    }];

还有这个:(应该是一样的)

FBLinkShareParams *params = [[FBLinkShareParams alloc] init];
    params.link = [NSURL URLWithString:@"http://xxx.net/"];
    params.name = @"NAME";
    params.caption = @"CAPTION";
    //params.picture = [NSURL URLWithString:@"http://upload.wikimedia.org/wikipedia/en/c/cd/Aller_Media_logo.png"];
    params.linkDescription = @"DESCRIPTION";

    [FBDialogs presentMessageDialogWithParams:params clientState:nil
                                    handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                        if(error) {
                                            // An error occurred, we need to handle the error
                                            // See: https://developers.facebook.com/docs/ios/errors
                                            NSLog([NSString stringWithFormat:@"Error messaging link: %@", error.description]);
                                        } else {
                                            // Success
                                            NSLog(@"result %@", results);
                                        }
                                    }];

这两种方法都会打开我的 Facebook Messenger 应用程序,其中的对话框预先填充了我的参数。但是当我发送消息时,除了链接之外的所有内容在接收者端都已消失。

据我了解,用户不必通过应用程序登录即可从 Facebook 消息对话框发送消息。

有人知道这里发生了什么吗?这是 Facebook 的错误吗?

编辑:这已被确认为 facebook 错误:https://developers.facebook.com/bugs/1547232035503916

【问题讨论】:

  • 我也面临这个问题,需要解决方案!特别是,在发送消息对话框中,我看到了链接、名称和链接描述,但没有看到标题(它已经丢失了)。接收者看不到我的自定义信息,名称和链接描述已被 FB 从链接页面提取的内容覆盖。
  • @stonemonk 完全一样。我已经创建了一个关于这个问题的 Facebook 票,但他们现在似乎很忙。要么是文档错误,要么是在他们的 SDK 中。如果您找到任何解决方案,请告诉我
  • 所以,这还没有解决?我正在努力解决同样的问题。
  • @Rhuantavan 我以为它已经在 3.15 补丁中解决了,但现在似乎更多的人在 facebook 上的票中报告了同样的问题。在那里写评论,让开发人员知道仍然存在问题。

标签: ios facebook-graph-api facebook-graph-api-v2.0 facebook-messages facebook-sdk-3.14.x


【解决方案1】:

虽然此错误已在 2014 年 6 月修复,但在最新的 Facebook 示例代码中仍有可能出现类似问题。在最新示例“FBShareSample”和 Facebook“iOS 共享”文档中,他们使用了该方法

[FBDialogs presentShareDialogWithLink:....] 

它只使用参数中的链接,而不使用其余参数(尽管后备示例 Feed Dialog 实际上确实使用了所有参数)。为了使用共享对话框中的所有参数,您需要使用

[FBDialogs presentShareDialogWithParams:...]

【讨论】:

  • 这是有用的信息。 FB 文档与他们的示例并不完全清晰和一致
【解决方案2】:

我注意到这取决于您提交的 URL。如果 URL 包含 Facebook Open Graph,则会显示 URL Open Graph 中的参数,并且这些参数会覆盖您放置的参数。

例如我正在尝试将 URL 共享到我的 App Store。每个 App Store 链接都包含 Facebook Open Graph,因此它不起作用。

我认为 Facebook 建议在这种情况下使用发布自定义 Open Graph 故事。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    相关资源
    最近更新 更多