【问题标题】:Why is FB.UI Share response returning nothing?为什么 FB.UI Share 响应没有返回任何内容?
【发布时间】:2014-10-01 13:08:30
【问题描述】:

我设置了一个由 Jquery 触发的共享弹出窗口。它可以工作,但我想使用响应值来触发成功的 AJAX 调用,而 Facebook 只返回一个空数组。

这里是javascript

$("#fb-request").click(function () { FB.ui({ 方法:“分享”, name: '查看网站', href: 'URL_TO_SHARE', }, 功能(响应){ if (response && !response.error_code) { 控制台日志(响应); // 返回:[] } }); });

因此,我无法区分发帖人和使用取消按钮的人。我在这里错过了什么吗? 或者有什么需要在 Facebook 应用上设置的?

谢谢,

【问题讨论】:

    标签: facebook facebook-javascript-sdk share facebook-share fb.ui


    【解决方案1】:

    来自documentation

    响应数据

    参数说明 object_id 仅当用户使用 Facebook 登录您的应用并已授予 publish_actions 时才可用。如果存在,这是已发布的 Open Graph 故事的 ID。

    【讨论】:

    • 好的,我使用 FB.login 在后台登录用户,但这无济于事,我仍然得到空响应
    • 你应该为登录提供访问权限,它是这样的:function myFacebookLogin() { FB.login(function(){}, {scope: 'publish_actions'}); }
    • 我也面临同样的问题,即使我的用户登录方式与上述评论中描述的相同。
    • 那么现在 publish_actions 不可用会发生什么?
    • 即使他的用户已登录,这里也会出现同样的问题!!有什么解决办法吗?
    【解决方案2】:

    如果用户取消分享对话框,响应是不确定的,所以:

    $("#fb-request").click(function () {
        FB.ui({
            method: 'share',
            name: 'Check out website',
            href: 'URL_TO_SHARE',
        },
        function (response) {
            if (response && !response.error_code) {
                if (typeof response != 'undefined'){
                    //shered
                }
            }
        });
    });
    

    【讨论】:

    • 此代码在 PC / Android 上运行良好,但在 iOS 上无法运行。只要用户没有登录到您的应用程序(具有适当的权限),响应的值将始终是一个空数组(无论是否发生共享)。
    【解决方案3】:

    首先检查您的用户是否已连接。

    FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        FB.ui(
            {
                method: 'feed',
                link: 'your_url',
                mobile_iframe: true
            },
            function(response){
            });
    }
    else {
        FB.login(function(response){
            FB.ui(
            {
                method: 'feed',
                link: 'your_url',
                mobile_iframe: true
            },
            function(response){
            });
        });
    }
    

    });

    【讨论】:

      【解决方案4】:

      这对我有用。

      FB.ui({
          method: 'share',
          display: 'popup',
          href: url,
      }, function(response){
          if (typeof response != 'undefined'){
              alert("shared");
          }else{
              alert("no shared");
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2020-08-16
        • 2021-04-14
        • 2021-07-20
        • 2019-09-30
        • 2019-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多