2016-07-10 33 views
0

Ich benutze den folgenden Code, um meine Seite auf FB zu teilen. Der Datentitel, die Datenbeschreibung und das Datenimage werden nicht geteilt. Wenn der Dialog-Link erscheint, zeigt die FB nur das Standard-Foto der App an. Wenn es geteilt wird, teilt die href korrekt und das App-Standardfoto wird angezeigt.FB share SDK funktioniert nicht - zeigt nur App-Foto an

Code ist unten und ich paste auch meinen Kopf (mit og Tags) am Ende des Skripts. Gibt es da einen Konflikt? Kann FB meine PHP-Tags nicht lesen?

Jede Hilfe wird geschätzt.

html:

<li><div id="fb-root"></div> 
<a class="fb_share" href="<?php echo JO_Request::getInstance()->getFullUrl(); ?>" data-image="" data-title="<?php echo $this->mypage['postTitle']; ?>" data-desc="<?php echo $this->mypage['postDesc'] ? nl2br(substr($this->mypage['postDesc'], 0, 200)) . '...' : ''; ?>" data-width="450"><img src="https://www.mygoodness.com/date/myimage.png" alt="" width="20" height="20"></a></li> 

Skript:

<script type="text/javascript"> 

    window.fbAsyncInit = function() { 
     FB.init({ 
      appId: 'app id', 
      secret: 'app secret', 
      status: true, 
      cookie: true, 
      xfbml: true 
     }); 
    }; 

    (function(d, debug) 
    {var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js"; 
     ref.parentNode.insertBefore(js, ref); 
    }(document, /*debug*/ false)); 

    function postToFeed(title, desc, url, image) { 
     FB.XFBML.parse(); 
     var obj = {method: 'feed',link: url, picture: image,name: title,description: desc}; 
     function callback(response) {} 
     FB.ui(obj, callback); 
    } 

    var fbShareBtn = document.querySelector('.fb_share'); 
    fbShareBtn.addEventListener('click', function(e) { 
     e.preventDefault(); 
     var title = fbShareBtn.getAttribute('data-title'), 
      desc = fbShareBtn.getAttribute('data-desc'), 
      url = fbShareBtn.getAttribute('href'), 
      image = fbShareBtn.getAttribute('data-image'); 
     postToFeed(title, desc, url, image); 

     return false; 
    }); 

</script> 

Kopf:

<head prefix="og:http://ogp.me/ns# fb:http://ogp.me/ns/fb#"> 

    <!-- Meta --> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <meta http-equiv="X-UA-Compatible" content="IE=echo,chrome=1"> 

    <meta property="fb:app_id" content="app id"> 
    <meta property="og:url" content="<?php echo JO_Request::getInstance()->getFullUrl(); ?>"> 
    <meta property="og:title" content="<?php echo $this->mypage['postTitle']; ?>"> 
    <meta property="og:image" content="<?php echo $this->baseUrl;?>myhome.png"> 
    <meta property="og:type" content="website"> 
    <meta property="og:description" content="<?php echo $this->mypage['postDesc'] ? nl2br(substr($this->mypage['postDesc'], 0, 200)) . '...' : ''; ?>"> 

</head> 
+0

Der Skriptcode muss innerer Körper sein, das wird empfohlen fb –

+0

@RuiCosta Dank Rui. Du meinst, setze den Code direkt nach der - ian

+0

ja, wenn nicht arbeiten, nach der Erfassung der Konsole Protokollfehler –

Antwort

0

Naja, eigentlich Ihre Tags richtig implementiert sind, ist das Problem, dass das Bild, das Sie auf Anzeige In der Dialogbox zum Freigeben excee das Limit, das im offenen Raumdiagramm eingestellt wird. (max limit-8mb)

Tschechische Dokumentation für offene Graph-Tags, die Web implementieren können.
Sharing Open Graph Webmaster Guide

Sie können auch Ihre Links mit diesem Debugger für offene Grafik untersuchen, ich denke, dass Sie am nützlichsten sein werden.