当用户在我的网站上提交“图章”时,我试图自动发布到用户的 Facebook 时间线。我正在运行一个测试脚本,整个代码如下。
您将在下面看到我用来测试脚本的两种方法:
- 一个监听 .openGraphButton 类的点击事件
- 另一个在正文 onLoad 事件中调用 postFB() 函数。
问题:
当用户单击“fb”按钮时,脚本工作正常并发布到 fb 墙/时间线。但是,当页面加载并尝试通过 onLoad 调用发布时,我收到错误消息代码。
目标:
我想在页面加载时自动发布到用户的 Facebook 时间线(即不让用户单击“fb”按钮)。这样,当用户发布新帖子(在我的网站上又称为“图章”)时,帖子/图章将出现在 Facebook 上。
注意:我使用“邮票”一词来指代用户在我的域/网站上的帖子。
我的代码:
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body onLoad="postFB(30,85)">
<div id="fb-root"></div>
<script type="text/javascript">
$(document).ready(function(){
$('.openGraphButton').click(function(){
var action = $(this).attr('action');
var page = $(this).attr('page');
var userid = 30;
var stokeid = 85;
postFB(userid,stokeid);
});
});
function postFB(userid, stokeid){
var url = "http://www.domain.com/profile-stoke.php?pid="+userid+"&sid="+stokeid;
postAction ('stamp','passport',url);
};
function postAction( action, object_type, object_url ){
FB.api('/me/[APP_NAME_SPACE]:stamp', 'post', { passport : object_url },function(response){
if (!response || response.error) {
alert('Error occured' + action + '?' + object_type + '=' + object_url);
} else {
alert('Post was successful! Action ID: ' + response.id);
}
});
}
</script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'APP_ID', // App ID
channelUrl : '//www.domain.com/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<div id="fb-root"></div><script>(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/all.js#xfbml=1&appId=APP_ID";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<input type="button" value="fb" class="openGraphButton" action="stamp" page="http://www.domain.com/profile-stoke.php?pid=30&sid=85" />
</body>
更新:
好的,所以我收到错误代码 2500 并显示以下消息:“必须使用活动访问令牌来查询有关当前用户的信息。”。但是,当我单击按钮时,它工作正常。我尝试实现一个 jquery 点击事件来模拟点击,但我得到了同样的错误。有任何想法吗?
提前感谢您的帮助 - 我很感激。