Twitter和Facebook分享回调?

时间:2011-02-12 19:17:48

标签: facebook twitter

我已将facebook和twitter分享到我的网站。用户在点击推特或Facebook分享按钮时会被重定向到以下网址。

http://www.facebook.com/sharer.php?u= '+ encodeURIComponent方法(位置)+' & T公司='+ encodeURIComponent方法(文本)

http://twitter.com/share?url= '+位置+' &安培;文本='+文本

如果可能的话,我希望在我的数据库中存储用户名和推文链接,当有人通过推特内容时,我想存储facebook个人资料网址和名称,当有人通过Facebook分享时。当有人成功完成共享过程时,是否可以检索该数据?

4 个答案:

答案 0 :(得分:19)

facebook javascript API允许您分享并为您提供回调

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.');
     }
   }
 );

要使用此功能,您需要设置一个Facebook应用程序,并在开始正文标记后直接输入以下代码

<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>

如果您要求基本权限,则可以获取用户的facebook ID并使用它来存储哪些用户共享。

答案 1 :(得分:15)

对于使用回调的Twitter调用,我就是这样做的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...
    });
});

twitter链接是这样的:

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

参考:https://dev.twitter.com/docs/intents/events

答案 2 :(得分:0)

打开FB共享窗口后,是否由用户发布内容。没有回调函数,也不可能知道他是否完成了过程。

您可能希望实现FB连接并创建自己的表单,以便在填充字段后将其发布到用户的墙上(并且您还可以选择将其保存在数据库中)。

我不知道Twitter是否提供您要求的功能,但我会采用与上述相同的解决方案。

答案 3 :(得分:0)

对于Facebook,有一个更新的Share Dialog with callback(来源: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

您必须提供app_id,并且redirect_uri必须在您的应用域中列入白名单。