2017-06-26 42 views
6

Korzystam z okna dialogowego kanału na Facebooku, aby umożliwić użytkownikom witryny udostępnianie treści na swoim kanale Facebook. W ich kanale znajduje się obraz, który służy jako link do strony w mojej witrynie, z tekstem poniżej (nazwa, podpis i pola opisu). Wszystkie te elementy - obraz, nazwa, podpis i opis są teraz przestarzałe i przestają działać 17 lipca. Czy istnieje inny sposób osiągnięcia tej funkcji przy użyciu innej metody?Z "obrazem" w oknie kanału na Facebooku nieaktualne, jak mogę opublikować link do obrazu?

+0

https://developers.facebook.com/docs/sharing/webmasters#markup – CBroe

+0

Dzięki CBroe. Rozumiem teraz, że mogłem nie być wystarczająco konkretny w moim poście. Chciałbym, aby użytkownicy mogli udostępniać link do strony, ale nie z samej strony. Zrobiłem to wcześniej, po kliknięciu na link na innej stronie, która uruchomiła kod javascript, który korzystał z okna dialogowego kanału. Oczywiście po raz pierwszy musieli zatwierdzić moją aplikację na Facebooku. Czy istnieje sposób, aby to zrobić teraz bez okna dialogowego kanału? –

+0

Co musisz zrobić, aby wywołać udostępnianie _z_? _ "Oczywiście po raz pierwszy musieli zatwierdzić moją aplikację na Facebooku" _ - nie mam pojęcia, o czym mówisz; używanie _dialogs_ nigdy nie wymagało żadnej zgody od nikogo, użytkownik ma pełną kontrolę. – CBroe

Odpowiedz

22

Musisz użyć metody akcji Open Graph opisanej na dole tej strony. here in the FB dev docs.

wywołać Podziel Dialog użyciu funkcji FB.ui z metodą parametru share_open_graph aby udostępnić historię Open Graph.

Spróbuj to w kodzie, aby określić własny obraz, tytuł, opis lub link na swojej akcji FB:

// this loads the Facebook API 
    (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')); 

    window.fbAsyncInit = function() { 
     var appId = '1937011929814387'; 
     FB.init({ 
      appId: appId, 
      xfbml: true, 
      version: 'v2.9' 
     }); 
    }; 

    // FB Share with custom OG data. 
    (function($) { 

     $('.fb_share_btn').on('click', function (event) { 
      event.preventDefault(); 
      event.stopPropagation(); 
      event.stopImmediatePropagation(); 

       // Dynamically gather and set the FB share data. 
       var FBDesc  = 'Your custom description'; 
       var FBTitle  = 'Your custom title'; 
       var FBLink  = 'http://example.com/your-page-link'; 
       var FBPic  = 'http://example.com/img/your-custom-image.jpg'; 

       // Open FB share popup 
       FB.ui({ 
        method: 'share_open_graph', 
        action_type: 'og.shares', 
        action_properties: JSON.stringify({ 
         object: { 
          'og:url': FBLink, 
          'og:title': FBTitle, 
          'og:description': FBDesc, 
          'og:image': FBPic 
         } 
        }) 
       }, 
       function (response) { 
       // Action after response 
       }) 
     }) 

    })(jQuery); 
+4

Jesteś geniuszem, nigdzie go nie znalazłeś i prawie zrezygnowałeś z dodawania niestandardowych treści do wyskakującego okienka! – JeBokE