fb post to wall函数显示语法错误意外标识符?但JS有效吗?

时间:2013-05-16 13:29:53

标签: javascript facebook-javascript-sdk

使用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&#47;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>

1 个答案:

答案 0 :(得分:0)

我一直试图解决我的问题,并且在我的后墙功能上工作了。

意外标识符的原因是因为我的php字符串。没有正确逃避的事情。

我在这里解决了一些问题:How to echo php string safely in a java script onclick identifier

另请注意,当您想要使用post to wall功能时,您需要允许使用App Domains访问域。 (请参阅下面的所有设置)

enter image description here