javascript - 检查用户是否使用 FB.ui 在共享对话框中发布(或取消)共享到 Facebook

标签 javascript facebook

我正在使用共享对话框,我希望在用户将内容发布到他/她的时间轴后发生一些事情。现在我正在使用:

function shareToFB(myName, myLink) {
    $('.overlay-bg').hide();
    FB.ui({
        method: 'share',
        href: myLink,
        name: myName
    }, function(response) {
        if (response && !response.error_code) {
            alert("Something");
        } else {
            alert("Error");
        }
    }
    );
}

但这会导致“Something”即使在用户取消发布时也会显示。如果用户在不需要任何权限的情况下将消息发布到他/她的时间轴,我有什么办法可以找到。如果这需要我使用不同的共享方法(如提要对话框),我不介意。

最佳答案

使用Feed Dialog相反。

尽管它的 UI 很丑陋,但通过 Feed Dialog 成功分享将返回一个响应对象,如 {post_id: "10206702999763274_10206703017843726"} 无论用户是否验证您的 Facebook 应用程序,而按取消将返回一个null 并关闭弹出窗口将返回 undefined

您可以通过转到正常的 Facebook 用户个人资料设置并尝试从允许列表中删除您的应用来测试此行为。

这与 Share Dialog 形成对比,如果您的应用尚未经过用户身份验证,无论共享是否成功,都将返回一个空的响应对象 {}

此外,如果您使用直接url重定向方法而不是js SDK,当用户在分享页面上按下取消时,您将收到一个GET参数error_codeerror_message附加到您的重定向目标。

[自 2015 年 12 月起] => 使用提要对话框或共享对话框访问响应中的帖子 ID。为此,用户必须已登录到您的应用程序并授予它 publish_actions。 https://developers.facebook.com/docs/sharing/reference/share-dialog#response


注意:在撰写本文时 (API v2.3) 是这样。然而,由于 Facebook 因破坏 API 行为而臭名昭著,您应该先自己进行测试。

关于javascript - 检查用户是否使用 FB.ui 在共享对话框中发布(或取消)共享到 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410492/

相关文章:

javascript - 复杂的javascript条件表达式

javascript - 无法让 onclick 事件在 WordPress 中工作

javascript - Protractor - 通过 Protractor 上传文件/运行exe

javascript - 没有按钮点击的 MagnificPopup

ios - Facebook API Objective-C 到 Swift

ios - uitableview 中的异步图像加载

android - 配置 facebook sdk 到 eclipse

javascript - 加载或准备好消息

Android获取Facebook共同好友如何填写USER ID?

c# - 生成错误 : Win32Exception: ApplicationName ='cmd' , 命令行 ='/Cecho "xxx"| openssl base6 4', CurrentDirectory=' '