2012-02-14 1 views
1

Новый разработчик Facebook и Symfony 1.4 с несколькими проблемами.Вопросы с Facebook и Symfony 1.4

Во-первых, у меня возникла проблема с появлением кнопки Добавить в хронологию, чтобы она появилась на моей странице, где она мне нужна. Мой сайт, похоже, показывает загружаемое изображение в Facebook, а затем после кажущейся загрузки кнопки «Нет». Я просмотрел множество разных сайтов (в том числе учебник FB для Open Graph), все из которых говорят, чтобы разместить сценарии после тега тега открытия. Я поместил его в свой файл layout.php, так что я не должен положить его в нескольких местах:

layout.php

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#"> 
.... 
<body> 
    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 
      FB.init({ 
       appId  : 'APP_ID', 
       status  : true, 
       cookie  : true, 
       xfbml  : true, 
       oauth  : true 
      }); 
     }; 

     (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#xfbml=1&appId=APP_ID"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 
    </script> 
    <div id="container"> 

Я уже заменили APP_ID, где это уместно и поместил Добавить на временной шкале кнопки в представлении:

viewSuccess.php

<?php // Facebook Post-to-Timeline Button for this user's created recipe ?> 
<?php if($recipe->getUserId() == sfUserTools::getConnectedUser()->getId()): ?> 
    <fb:add-to-timeline show-faces="false" mode="button"></fb:add-to-timeline> 
<?php endif ?> 

Я не уверен, что проблема с тем, где находится сценарий JSSDK, или если Symfony не видит что-либо на странице просмотра. Обратите внимание: у меня еще нет настроек и объектов наших приложений для Open Graph, публикация на график не является моей проблемой в настоящее время. Любые идеи или советы для новичков?

+0

Есть ли у кого-нибудь идеи или советы? Может быть, потому, что Symfony настроен на разные модули, а не на одну страницу, мне нужно добавить JSSDK на каждую страницу, на которой будет включена кнопка? –

ответ

0

Вы пытались передать access_token или perms на FB.init?

FB.init({ 
    appId    : "<?php echo sfConfig::get('app_facebook_api_key') ?>", 
    status    : true, // check login status 
    cookie    : true, // enable cookies to allow the server to access the session 
    xfbml    : false, // parse XFBML 
    perms    : 'read_stream, publish_stream', 
    access_token   : "ACCESS_TOKEN_HERE", 
    frictionlessRequests : true 
    }); 
+0

Будьте осторожны, потому что эта кнопка будет отменена в августе 2012 года. Документы: https://developers.facebook.com/roadmap/#august-2012 Мы удалим плагин Add to Timeline. Если вы встраиваете плагин «Добавить в шкалу времени», мы будем отображать на нем кнопку «Вход» с разрешением, которое автоматически добавляет к параметру scope параметр publish_actions. –