使用facebook javascript sdk - 我已将此功能发布到当前facebook用户的墙上。
但我确信这是正确的(显然不是),但无法在任何地方找到语法错误。
单击“发布到墙”按钮时,仅显示错误。任何人都可以帮助我理解错误的原因吗?
由于 约什
请参阅下面的完整标签应用代码。
<?php
require 'facebook-php-sdk-master/src/facebook.php';
$fb_app_id = 'XXXXXXXXXXXXXXX';
$fb_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$fb_admins = 'XXXXXXXXX';
$fb_channel_url = '//myapp.co.uk';
$og_title = 'My App';
$og_description = 'This is my app';
$facebook = new Facebook(array(
'appId' => $fb_app_id,
'secret' => $fb_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
?>
<!DOCTYPE html>
<head>
<meta name="robots" content="noindex, nofollow">
<meta charset="utf-8">
<meta property="fb:app_id" content="<?php echo $fb_app_id; ?>">
<meta property="fb:admins" content="<?php echo $fb_admins; ?>">
</head>
<body>
<a href="#" onclick="fb_publish('<?php echo $fb_app_url; ?>','<?php echo $og_title; ?>','Image URL Here','<?php echo $og_description; ?>'); return false;">Post to wall</a>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $fb_app_id; ?>', // App ID
channelUrl : '<?php echo $fb_channel_url; ?>',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Canvas.setAutoGrow(true);
};
function fb_publish(link,title,image,description) {
var obj = {
method: 'feed',
link: link,
picture: image,
name: title,
caption: 'facebook.com/mypage',
description: description
};
function callback(response) {
}
FB.ui(obj, callback);
}
/***** load SDK *****/
(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>
</body>
</html>
答案 0 :(得分:0)
我一直试图解决我的问题,并且在我的后墙功能上工作了。
意外标识符的原因是因为我的php字符串。没有正确逃避的事情。
我在这里解决了一些问题:How to echo php string safely in a java script onclick identifier
另请注意,当您想要使用post to wall功能时,您需要允许使用App Domains访问域。 (请参阅下面的所有设置)