0

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>
4

1 に答える 1

0

私は自分の問題を理解しようとし続け、ポストウォール機能を機能させました。

予期しない識別子の理由は、php 文字列が原因でした。物事を適切にエスケープしていません。

私はここでいくつかの助けを借りて問題を修正しました: How to echo php string safe in a java script onclick identifier

また、post to wall 機能を使用する場合は、App Domains を使用してドメインへのアクセスを許可する必要があります。(以下のすべての設定を参照)

ここに画像の説明を入力

于 2013-05-23T13:49:03.980 に答える