Приложение Facebook, встроенное в JavaScript SDK, не публикуется на временной шкале

#javascript #facebook #facebook-graph-api #facebook-javascript-sdk #privacy

#javascript #Facebook #facebook-graph-api #facebook-javascript-sdk #конфиденциальность

Вопрос:

Я разработал приложение Facebook / автономный веб-сайт, который использует пользовательский объект и действие для поддержки дней открытых дверей Университета Лидса. Оно создано с использованием JavaScript SDK.

Вот URL-https://fbapps.leeds.ac.uk/opendays/recap.html

Код работает нормально и публикует в Open Graph, но публикует только в профиле этого пользователя и не отображается на временной шкале.

Facebook одобрил мой запрос на явный обмен, и это включено в настройках приложения, однако, похоже, оно по-прежнему не публикуется на временной шкале пользователя, как я ожидал.

Тем не менее, сообщение отображается в журнале активности.

Я добавил в код параметр явного общего доступа, изменил настройки конфиденциальности по умолчанию и включил publish_actions в data_scope.

У кого-нибудь есть какие-либо идеи, чего не хватает, пожалуйста, поскольку не могу понять, в чем проблема?

Любой совет с благодарностью получен. Большое спасибо за любую помощь, которую кто-либо может предоставить по этому поводу.

Вот код:

 <script type="text/javascript">
  // You probably don't want to use globals, but this is just example code
  var fbAppId = '1471972309703879';
  var objectToLike = 'https://fbapps.leeds.ac.uk/recap.html';

  /*
   * This is boilerplate code that is used to initialize
   * the Facebook JS SDK.  You would normally set your
   * App ID in this code.
   */

  // Additional JS functions here
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 1471972309703879, // App ID
      status     : true,    // check login status
      cookie     : true,    // enable cookies to allow the
                            // server to access the session
      xfbml      : true,     // parse page for xfbml or html5
                            // social plugins like login button below
      version    : 'v2.0',  // Specify an API version
    });

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

  /*
   * This function makes a call to the og.likes API.  The
   * object argument is the object you like.  Other types
   * of APIs may take other arguments. (i.e. the book.reads
   * API takes a book= argument.)
   *
   * Because it's a sample, it also sets the privacy
   * parameter so that it will create a story that only you
   * can see.  Remove the privacy parameter and the story
   * will be visible to whatever the default privacy was when
   * you added the app.
   *
   * Also note that you can view any story with the id, as
   * demonstrated with the code below.
   *
   * APIs used in postLike():
   * Call the Graph API from JS:
   *   https://developers.facebook.com/docs/reference/javascript/FB.api
   * The Open Graph og.likes API:
   *   https://developers.facebook.com/docs/reference/opengraph/action-type/og.likes
   * Privacy argument:
   *   https://developers.facebook.com/docs/reference/api/privacy-parameter
   */

  function postLike() {
    FB.api(
       'me/leedsopendaypics:enjoy',
       'post',
       { recap: "https://fbapps.leeds.ac.uk/opendays/recap.html",
         fb:explicitly_shared = "true",
         privacy: {'value': 'EVERYONE'} },
       function(response) {
         if (!response) {
           alert('Error occurred.');
         } else if (response.error) {
           document.getElementById('result').innerHTML =
             '<h3>Please log in to Facebook above so you can share this page</h3>';
         } else {
           document.getElementById('result').innerHTML =
             '<a href="https://www.facebook.com/me/activity/'  
             response.id   '" target="_parent">'  
             '<h3>Thanks. That has now been shared.</h3></a>';
         }
       }
    );
  }
</script>

<!--
  Login Button

  https://developers.facebook.com/docs/reference/plugins/login

  This example needs the 'publish_actions' permission in
  order to publish an action.  The scope parameter below
  is what prompts the user for that permission.
-->

<div
  class="fb-login-button"
  data-show-faces="true"
  data-width="200"
  data-max-rows="1"
  data-scope="publish_actions"
  return_scopes="true">
</div>

<div>
<input
  type="button"
  class="button"
  value="Share this recap page on your Facebook Timeline"
  onclick="postLike();">
</div>

<div id="result"></div>
  

Ответ №1:

Что ж, это хорошая особенность Open Graph : D

Истории Open Graph не публикуются в качестве статуса, это действие, которое пользователь выполнил с помощью вашего приложения. Таким образом, эти истории объединяются в виде действий приложения, а не публикуют статус на временной шкале и излишне заполняют временную шкалу.

Итак, на вашей временной шкале проверьте наличие раздела «Недавние действия» (прокрутите немного вниз, вы найдете это)-

введите описание изображения здесь

Но не волнуйтесь, эта история будет опубликована в соответствующем большом блоке на стене вас и вашего друга (независимо от настроек конфиденциальности, которые вы установили). Чтобы проверить, как будет выглядеть эта история на стене, вы можете проверить саму свою стену, но если вы не можете ее найти (на стене n сообщений, может быть сложно найти один)-

  • нажмите на время, отмеченное желтым на скриншоте выше, или
  • перейдите в Журнал действий и нажмите на время-

    введите описание изображения здесь

И вот как будет выглядеть публикация-

введите описание изображения здесь

Комментарии:

1. Большое спасибо, Сахил. Это действительно полезно. Прочитайте много документации, и ваше объяснение будет наиболее осмысленным. 🙂