无法在Facebook时间轴上发布:收到错误消息" ERROR(#100)参数对象是必需的"

时间:2014-06-04 06:22:55

标签: javascript facebook facebook-graph-api fb.ui

我有一个网站。我需要在Facebook上分享内容。我创建了自定义故事"参与参与"各自的行动"参与"和对象"参与"。我的问题是从facebook获得explicit_shared权限,我需要向用户显示要发布的内容。 当我使用下面的FB.api发帖时,它正在成功发布。 方法1:

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
        FB.init({
          appId      : "Some App ID",
          status     : true,    
          cookie     : true,    
          xfbml      : true,     
          version    : 'v2.0',  
        });
      };

          // Load the SDK Asynchronously
          (function(d, s, id){
             var js, fjs = d.getElementsByTagName(s)[0];
             if (d.getElementById(id)) {return;}
             js = d.createElement(s); js.id = id;
             js.src = "//connect.facebook.net/en_US/sdk.js";
             fjs.parentNode.insertBefore(js, fjs);
           }(document, 'script', 'facebook-jssdk'));

        function postFBShare() {
            var fbparam= {
                            "app_id":"Some App ID",
                            "url":"Some url",
                            "title":'Some Title',
                            "image":[
                                     {url:"Some image url"}
                                     ],
                            "description":'',
                            "explicitly_shared": "true"
                        };
            FB.api(
                      'https://graph.facebook.com/me/{namespace}:participate ',
                      'post',
                      {
                        engagement: fbparam
                      },
                      function(response) {
                        // handle the response
                      }
                    );
        }
    </script>
    <input type="button" value="fb share" onclick="postFBShare();">

方法2: 但要显示用户wht将发布我需要一个对象发布。我写了以下代码来实现这一点。

function preFBAction(videoURL){
                var fbparam= {
                        "app_id":"Some App ID",
                        "type" : {namespace}:engagement,
                        "url":"Some url",
                        "title":'Some Title',
                        "image":[
                                 {url:"Some image url"}
                                 ],
                        "description":'',
                        "explicitly_shared": "true"
                    };
                FB.api(
                          '/app/objects/{namespace}:engagement',
                          'post',
                          {
                            engagement: fbparam
                          },
                          function(response) {
                            // handle the response
                             if (response && !response.error) {
                                 FB.ui(
                                        {
                                            method: 'share_open_graph',
                                            action_type: '{namespace}:participate ',
                                            action_properties: JSON.stringify({engagement:response.id})
                                        },
                                      function(response) {
                                        // handle the response
                                      }
                                    );
                             }
                          }
                        ); 
};

方法3: 我尝试只使用FB.ui,但在共享对话框中收到以下错误 &#34;操作至少需要一个参考:您尝试发布的操作无效,因为它未指定任何参考对象。必须至少指定以下属性之一:other。&#34; 我试过的代码是 -

var obj={
    method: 'share_open_graph',
    action_type: '{namespace}:participate ',
    action_properties: {engagement:fbparam}     
};
 FB.ui(obj,function(response) {
    // handle the response
}); 

因此,如果有人知道如何做到这一点以及我出错的地方,请帮帮忙。 谢谢!

更新

在公共页面上使用og标签我可以在墙上成功发布,也可以在方法2 中发布,如果我使用&#34; / me / objects /.."取代&#34; / app / objects ..&#34;发布gto发布在facebok上,但这次我是在newz feed和活动日志中创建的,这不符合facebook的政策。(类似问题提到here。)

0 个答案:

没有答案