2015-04-01 21 views
12

ben bu araştırma saat geçirdim ama dışarısı pek geliştiriciler için zor gibi görünüyor. Ben şu şekilde bir formdan sonuçları çıkışı, küçük php sınavım var:Hisse yarışması sonuçları Facebook'ta

if (maxA) { 
    echo ' 
    <img src="imgs/result4.jpg"/> 
    <div class="results2"> 
    <p class="title">You are a Bean</p> 
    <p class="details">Description</p> 
    </div>'; 
} 

soru, birlikte, Facebook'ta sonucu paylaşacağız bu dibinde bir Paylaş düğmesi nasıl ekleneceğini açıklama ve resim. Mevcut dört sonuç olduğunu unutmayın.

bir kamu uygulamayı geliştiren ve eklenen kafasına şu var:

<script> 
window.fbAsyncInit = function() { 
FB.init({ 
    appId  : '1382290368762081', 
    xfbml  : true, 
    version : 'v2.3' 
}); 
}; 

(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')); 
</script> 

Ve HTML anlamak için çaba henüz. Ben bu cevap ile ileri geri gittim: Using "share_open_graph" Facebook UI to create dynamic share dialog for quiz results - ama aslında bir şey elde etmedim. Birisi bunun gerçekleşmesi için tam yolu biliyorsa ve bunları bizimle paylaşmak için tüm topluma yararlı olacağını düşünüyorum.

+0

, o zaman dört ayrı URL'ler, sonuçların biri için Open Graph meta veri tutan her biri oluşturmak ve izin vermeli kullanıcıların sonucuyla eşleşen birini paylaşır. – CBroe

+0

@CBroe Facebook, URL özelliklerinin farklı sayfalar olduğunu düşünüyor mu? (. Örneğin www.mysite.com/quiz.php?result=22 www.mysite.com/quiz.php?result=45 farklı olmak?) –

+0

@Chuck: Evet, yapıyorlar - Eğer içine aynı değeri koyarsanız og: url meta etiketi. – CBroe

cevap

10

Bunun için facebook js SDK'yı kullanabilir. Bunu başarmak için FB.ui yöntem özet akışını arayabilirsiniz. facebook paylaşmak için aşağıdaki fonksiyon javscript yararlanabileceğinizi sayfanızdaki

<input type="button" onclick="postToFeed()" value="Share" /> 

bir düğme oluşturun. istediğiniz kadar

function postToFeed() { 
    // calling the API ... 
    var obj = { 
     method: 'feed', 
     link: 'https://www.azeezkallayi.com/', 
     description: "description goes here", 
     picture: 'https://www.azeezkallayi.com/demo/test/womens-day.jpg', 
     name: 'International womens day'  
    }; 
    FB.ui(obj); 
    } 

Burada parametrelerinin değerlerini değiştirebilir. @ Azeez cevabı Dahası

-1

: CBroe yorumuna @ rağmen, farklı sonuçların her biri için dört URL'ler oluşturmak için gereksizdir. Bu durumun üstesinden gelmek için en iyi yolu kullanarak Facebook paylaşımına olan (benzer, ancak, Hisse iletişim ile aynı - yerine sayfadaki meta etiketleri onun bilgisini çeker Hisse yöntemi modifiye ve olamaz) Feed dialog.

Daha sonra, tamamen benzersiz öğelerle dolu yeni bir Besleme iletişim kutusunu açmak için Javascript SDK'sini (uygulama kimliğinizle) kullanabilirsiniz. Örneğin:

// Facebook Share 
    $('#facebook-share').on('click', function(e){ 
     e.preventDefault(); 

     FB.ui({ 
      method: 'feed', 
      link: 'http://www.example.com/Quiz/', 
      picture: '<?= $FacebookShareImage; ?>', 
      name: 'This is a headline', 
      caption: 'example.com', 
      description: 'Your longer description goes here' 

     }, function(response){ 
      if (response) { 
       console.log('Facebook post published.'); 
       showThankYou(); 
      } else { 
       console.log('Facebook post was not published.'); 
      } 
     }); 
    }); 

Sen yukarıda belirtilen Feed dialog documentation page nitelikleri mevcut geri kalanı hakkında okuyabilirsiniz. Dört farklı sonuçlar varsa