//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用户不希望你在他们不知情的情况下在他们的时间线上发布。