Facebook在我的时间线上使用javascript sdk分享自定义故事 [英] Facebook share custom story on my timeline using javascript sdk

查看:100
本文介绍了Facebook在我的时间线上使用javascript sdk分享自定义故事的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个非常新手的问题,我无法找到解决方案,我花了很多时间阅读他们的官方文档,但这一切都是徒劳的,所以我作为最后的手段来到这里。
我正在努力做什么

我想在我的时间轴上发布我的自定义故事


1)我创建了一个自定义故事

2)已尝试与共享对话框分享[没有工作],并尝试过api通话。

This is a very novice question that i am not able to find a solution to i have spent a lot of time in reading their official documentation but it's all in vain, so i have come here as a last resort.
What i am trying to do
I want to post my custom story on my timeline,

1)I have created a custom story
2)have tried to share it with a share dialog[did not work], and have tried the api call also.

<div id="fb-root"></div>

<!-- facebook code starts here -->

<script>
  function statusChangeCallback(response) {
    console.log('statusChangeCallback');
    console.log(response);


  function checkLoginState() {
    FB.getLoginStatus(function(response) {
      statusChangeCallback(response);
    });
  }

  window.fbAsyncInit = function() {
  FB.init({
    appId      : xxxxx[correctly used app id],
    cookie     : true,  // enable cookies to allow the server to access 
    status     : true,           
    xfbml      : true,  // parse social plugins on this page
    version    : 'v2.0' // use version 2.0
  });



  FB.getLoginStatus(function(response) {
    statusChangeCallback(response);
  });




  FB.api(
          'me/objects/restaurant.restaurant',
          'post',
          {
            app_id: xxxxx[correctly used app id],
            type: "restaurant.restaurant",
            url: "http://samples.ogp.me/440002909390231",
            title: "Sample Restaurant",
           image:"https://static.ak.fbcdn.net/images/devsite/attachment_blank.png",
            description: "This place rocks",
            contact_info: "http://www.facebook.com",
            location: "-122.148283"
          },
          function(response) {
            // handle the response
          }
    );


  FB.api(
          'me/testxdev:eat',
          'post',
          {
            restaurant: "http://samples.ogp.me/440002909390231"
          },
          function(response) {
            // handle the response
          }
        );


  };//********END OF FUNCTION ENCLOSING INIT()***********

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


</script>  

 <div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>


<!--  End of facebook code-->


推荐答案

我能够解决自己的问题,也发布了解决方案,让别人不会有这么难的时间。

I was able to solve my own question, I have also posted the solution so that others will not have such a hard time.

<div id="fb-root"></div>
<!-- facebook code starts here -->

<script>

  function statusChangeCallback(response) {


    if (response.status === 'connected') {



     FB.api('/me', function(response) {
        console.log("here");
            console.log(JSON.stringify(response));
});  

  FB.api(
         '/me/objects/restaurant.restaurant',
         'post',
         {
           app_id: "[your app id]",
           type: "restaurant.restaurant",
           url: "http://samples.ogp.me/440002909390231",
           title: "Sample Restaurant",
           image: "https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png",
           description: "This place rocks",
           contact_info: "http://www.facebook.com",
           location: "-122.148283"
         },
         function(response) {
           // handle the response[this helped a lot]
           console.log(JSON.stringify(response));

         }
        ); 

          FB.api(
              '/me/testxdev:eat',
              'post',
              {
            restaurant: "http://samples.ogp.me/440002909390231"
              },
              function(response) {
            // handle the response
              console.log("the action response "+response);
               console.log(JSON.stringify(response));

              }
           );

    } else if (response.status === 'not_authorized') {
      document.getElementById('status').innerHTML = 'Please log ' +
        'into this app.';
    } else {
      document.getElementById('status').innerHTML = 'Please log ' +
        'into Facebook.';
    }
  }


  function checkLoginState() {
    FB.getLoginStatus(function(response) {
      statusChangeCallback(response);
    });
  }

  window.fbAsyncInit = function() {
  FB.init({
    appId      : "[your app id]",
    cookie     : true,  
    status     : true,     
    xfbml      : true,  
    version    : 'v2.0' 
  });

  FB.getLoginStatus(function(response) {
     statusChangeCallback(response);   
  });



  };

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


</script>


<fb:login-button scope="public_profile,email,publish_actions",
    auth_type: 'rerequest' onlogin="checkLoginState();">
</fb:login-button>
<div id="status"></div>
 <div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>


<!--  End of facebook code-->

上述代码正常工作[代码来自自定义创建的故事],主要问题是默认情况下,该帖子被共享时,它不会显示在时间表上[按照开发模式],,因此可以查看帖子以查看最近的活动日志。它必须在那里可见。
如果您希望帖子在时间轴上显示,请在应用程序信息中心的状态下查看应用程序的可见性,然后查看是否

The above code is working properly[the code is from a custom created story], the main issue was that by default when the post is shared it DOES NOT APPEAR ON THE TIMELINE[AS THE APP IS IN DEVELOPMENT MODE], hence to view the post go to view recent activity log. it must be visible there. If you want the post to appear on the timeline set the app visibility under the status and review in the app dashboard to yes

如果您希望要向用户发布任何内容(除了应用程序注册开发者]时间轴,您需要Facebook权限即应用程序需要提交批准请参阅以下链接 https://developers.facebook.com/docs/facebook-login/permissions/v2.0

as of 2014 if you want to post anything to the user[apart from the app registered developer] timeline you need Facebook permission i.e the app needs to be submitted for approval Please refer the following link https://developers.facebook.com/docs/facebook-login/permissions/v2.0

您可以检查它是在概述部分的正下方。

you can check that it's right below the overview section.

这篇关于Facebook在我的时间线上使用javascript sdk分享自定义故事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆