2

js sdk を介して管理者のページの壁に投稿を送信しようとしています。私は自分自身(私の個人ユーザー)のためにそれを行うことができますが、「ページ」として機能させることはできません。

<div id="fb-root"></div>
    <script type="text/javascript">
        function SendToFacebook()
        {
        window.fbAsyncInit = function () {
            // init the FB JS SDK
            FB.init({
                appId: '**CORRECT ID**',                        // App ID from the app dashboard
                channelUrl: '**MYPAGE**/channel.html', // Channel file for x-domain comms
                status: false,                                 // Check Facebook Login status
                xfbml: true                                  // Look for social plugins on the page
            });

            FB.ui(
               {
                   method: 'feed',
                   name: 'MyFeed',
                   link: '',
                   // picture: '',
                   caption: 'My caption',
                   description: 'test',
                   message: 'MESSAGE?',
               },
               function (response) {
                   if (response && response.post_id) {
                       alert('Delat på facebook.');
                   } else {
                       alert('Inte delat på facebook.');
                   }
               }
             );
            // Additional initialization code such as adding Event Listeners goes here
            };

        // Load the SDK asynchronously
        (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";
            fjs.parentNode.insertBefore(js, fjs);
        } (document, 'script', 'facebook-jssdk'));
        }
    </script>

これは自分のユーザーページに投稿し、「to」パラメーターを試しましたが、個人ユーザーからの投稿をページに送信します。ログイン機能でこれを行う方法はありますか?私はこれにかなり慣れていないので、デモや例は大歓迎です。

4

2 に答える 2

5

私はハードな日々の仕事の後にそれを機能させました。

<script type="text/javascript">

        function SendToFacebook()
        {
            window.fbAsyncInit = function () {
                // init the FB JS SDK
                FB.init({
                    appId: '***',                        // App ID from the app dashboard
                    channelUrl: '***', // Channel file for x-domain comms
                    status: false,                                 // Check Facebook Login status
                    xfbml: true                                  // Look for social plugins on the page
                });


                FB.login(function (response) {
                    FB.api('/me/accounts', function (apiresponse) {

                        var data = {
                            message: "mymessage",
                            display: 'iframe',
                            caption: "caption",
                            name: "name",
                            description: "description",
                            to: **wallid**,
                            from: **wallid**
                        };

                        FB.api('/**wallid**/feed', 'post', data, function () {
                            console.log(arguments);
                        });


                    });

                }, { scope: 'manage_pages' });

            };
            // Load the SDK asynchronously
            (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";
                fjs.parentNode.insertBefore(js, fjs);
            } (document, 'script', 'facebook-jssdk'));
        }
        </script>
于 2013-11-13T13:31:43.277 に答える
0

この解決策を見つけて試してみましたが、3 年前はどうだったかはわかりませんが、/me/accounts 呼び出しで受け取ったページ アクセス トークンを追加する必要があります (また、そのページの管理者である必要があります)。作業ソリューションは次のようになります。

FB.api('/me/accounts', function (apiresponse) {
              console.log(apiresponse);
              var data = {
                  message: "mymessage",
                  //display: 'iframe',
                  caption: "caption",
                  picture: 'www.bla.com/image.jpg',
                  link: 'www.facebook.com',
                  name: "name",
                  description: "description",
                  to: **APP IP**,
                  from: **APP IP**,
                  access_token: apiresponse.data[0].access_token
              };

              FB.api('/**APP IP**/feed', 'post', data, function () {
                  console.log(arguments);
              });
          });
于 2016-10-20T11:51:03.987 に答える