//更新: 在帮助下,我设法捕获了一些修复了令牌问题的错误。我已更新代码以反映这一点。代码仍然没有在时间轴上产生事件,所以我要离开这个问题了。
原始问题:
我正在尝试使用Open Graph API构建一个简单的脚本,一旦访问者点击页面,该脚本就会将指向访问页面(包含电影)的链接推送到Facebook。
我没有使用自定义操作和对象,而是使用标准的Watch操作(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
}
});
}
这会触发警报'Nope'。
我已经通过curl添加了Watch动作。 关于可能发生什么的任何想法?
答案 0 :(得分:0)
您仍然需要FB.login才能自动发布到用户的时间线。
FB.login(function(response) {
// Post the action
}, {scope: 'publish_actions'});
虽然我没有检查您的实际代码的有效性来发布操作,但问题是在您执行此操作之前,您需要得到用户的许可。 publish_actions
权限是您需要的权限,但我认为它已包含在新的Auth Dialogs中。只要把它放在那里就可以了。
首先执行FB.login代码,然后弹出“允许”对话框,之后,您可以在用户的墙上自由发布。这是安全的一部分,Facebook用户不希望你在没有他们知道的情况下在他们的时间轴上发布。