具有默认'Watch'操作的FB打开图形脚本不起作用



//Update:在帮助下,我设法捕获了一些修复令牌问题的错误。我已经更新了代码以反映这一点。不过,代码仍然没有在时间轴上生成事件,所以我把这个问题留了下来。

原始问题:

我正在尝试使用Open Graph API构建一个简单的脚本,一旦访问者点击该页面,该脚本就会将指向访问过的页面(包含电影(的链接推送到Facebook。

我没有使用自定义操作和对象,而是使用标准的观看操作 (https://developers.facebook.com/docs/opengraph/video/( 和 Video.movie 对象。

我根据FB的示例代码提出了这个:

<!-- first login-button with scope publish_actions: -->
<fb:login-button show-faces="false" width="200" max-rows="1" scope="publish_actions"    ></fb:login-button>
<!-- Then script that should push update to timeline: -->
<script type="text/javascript">
    function fbPublish(){
        FB.api(
        '/me/video.watches',
        'post',
        { 'video.movie': '<?php the_permalink(); ?>',
        'access_token': 'blablabla'  },
        function(response) {
           if (!response || response.error) {
              alert('Nope.');
           } else {
              alert('Yes.'); // any stuff
           }
        });
    }

这将触发警报"否"。

我已经通过卷曲添加了监视操作。关于可能发生的事情的任何想法?

您仍然需要FB.login,然后才能自动发布到用户的时间线。

FB.login(function(response) {
      // Post the action
 }, {scope: 'publish_actions'});

虽然我没有检查您的实际代码的有效性来发布操作,但您的问题是,在执行此操作之前,您需要用户的许可。publish_actions权限是您需要的权限,但我认为它已经包含在新的身份验证对话框中。只要把它留在那里就可以了。

首先做FB.login代码,你会得到一个弹出的"允许"对话框,之后,就是你可以在用户墙上自由发布的时候了。这是安全的一部分,Facebook用户不希望你在他们不知情的情况下在他们的时间线上发布。

最新更新