2011-02-12 4 views
14

J'ai mis en place des partages facebook et twitter sur mon site. Les utilisateurs sont redirigés vers les URL suivantes lorsqu'ils cliquent sur le bouton de partage Twitter ou Facebook.Twitter et Facebook partagent avec des rappels?

http://www.facebook.com/sharer.php?u= '+ encodeURIComponent (emplacement) +' & t = '+ encodeURIComponent (texte)

http://twitter.com/share?url= '+ emplacement +' & text =' + texte

Je veux stocker le lien nom d'utilisateur et tweetez si possible dans ma base de données quand quelqu'un le contenu via Twitter et je veux stocker l'url de profil facebook et nom quand quelqu'un le partage via facebook. Est-il possible de récupérer ces données lorsque quelqu'un a terminé le processus de partage avec succès?

+0

Pour regarder twitter à http://stackoverflow.com/questions/4947825/is-there-a-callback-for-twitters-tweet-button –

Répondre

0

Une fois que vous avez ouvert la fenêtre de partage FB, il appartient à l'utilisateur de publier le contenu ou non. Il n'y a pas de fonction de rappel et il n'est pas possible de savoir s'il a terminé le processus. Il se peut que vous souhaitiez implémenter un FB connect et créer votre propre formulaire pour publier dans le mur de l'utilisateur une fois qu'il a rempli les champs (et vous avez également la possibilité de les enregistrer dans votre DB).

Je ne sais pas si Twitter offre la fonctionnalité que vous demandez, mais j'irais pour la même solution que ci-dessus.

+1

Il y a une demande de fonctionnalité ouverte pour un rappel sur tweetbuttons: http : //code.google.com/p/twitter-api/issues/detail? id = 1835 – abraham

+0

Cool! Merci pour l'info;) –

+2

Cela peut être un commentaire désuet. Une autre réponse sur cette page a fourni une solution de rappel fonctionnante, alors que cette réponse prétend qu'il n'y en a pas. – gcdev

18

Le facebook javascript API vous permet de partager et vous donne un rappel

http://developers.facebook.com/docs/reference/javascript/FB.ui/

FB.ui(
    { 
    method: 'feed', 
    name: 'Facebook Dialogs', 
    link: 'http://developers.facebook.com/docs/reference/dialogs/', 
    picture: 'http://fbrell.com/f8.jpg', 
    caption: 'Reference Documentation', 
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.', 
    message: 'Facebook Dialogs are easy!' 
    }, 
    function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
    } 
); 

Pour utiliser cela, vous devez avoir mis en place une application facebook et mettre le code suivant directement après l'ouverture balise body

<div id="fb-root"> 
</div> 
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    FB.init({ 
     appId: YOUR_API_KEY, 
     status: true, 
     cookie: true, 
     xfbml: true 
    }); 
    FB.Canvas.setAutoResize(); 
</script> 

Si vous demandez des autorisations de base, vous pouvez alors obtenir les utilisateurs facebook id et l'utiliser pour stocker les informations sur l'utilisation rs avait partagé.

+0

Le code FB JS peut être n'importe où dans votre code, en-tête, pied de page, dans le corps, tout fonctionne. La seule chose qui doit être juste après l'étiquette du corps est la div. –

+0

Vous pouvez mettre la div où vous voulez et cela fonctionne. –

+0

Params pour cela: https://developers.facebook.com/docs/reference/dialogs/feed/ –

15

Pour appel Twitter avec rappel, c'est-ce que je l'ai fait en Javascript:

// Include the Twitter Library 
window.twttr = (function (d,s,id) { 
    var t, js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; 
    js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); 
    return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } }); 
}(document, "script", "twitter-wjs")); 

// On ready, register the callback... 
twttr.ready(function (twttr) { 
    twttr.events.bind('tweet', function (event) { 
     // your callback action here... 
    }); 
}); 

Le lien twitter est comme ceci:

 <a href="https://twitter.com/intent/tweet?url=URLTOBESHARED">Share on Twitter</a> 

Référence: https://dev.twitter.com/docs/intents/events

+0

fonctionne parfaitement, bon exemple. – stonep

+0

Un tas de paramètres pour ce lien: https://dev.twitter.com/docs/intents#tweet-intent –

+0

Merci Merci Merci Merci Merci – Umair

0

Pour Facebook, il existe une boîte de dialogue de partage mise à jour avec rappel (Source: https://developers.facebook.com/docs/sharing/reference/share-dialog)

https://www.facebook.com/dialog/share? 
app_id=145634995501895 
&display=popup 
&href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F 
&redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer 

Vous devez fournir un app_id et le redirect_uri doit être ajouté à la liste blanche dans vos domaines d'application.

Questions connexes