分享按钮/发布到墙上 - Facebook API?

时间:2011-09-09 03:53:38

标签: facebook facebook-graph-api

我不想使用FB之类的按钮,显然“分享”已被弃用。 我想要做的是让用户点击我的网站上的“分享”/“发布到墙”,然后在他们的新闻源/个人资料上发布一个帖子,其中包含我的网站/网址上的信息。

我似乎无法找到任何可以做到这一点的代码 - 有没有人有例子?

他们必须先连接吗?或者它可以检查他们是否已登录,如果没有,登录并自动共享?

谢谢!

2 个答案:

答案 0 :(得分:20)

这可以通过两种方式实现:

  • 如果您有应用程序,则可以使用facebook Javascript SDK:
    FB.ui({
        method: 'feed',  
        link: 'absolute url',
        name: 'testtitle',
        caption: 'testcaption',
        description: 'testdescription',
        picture: 'absolute picurl',
        message: ''
    });

请注意,“消息”必须为空,您也可以将其删除。

  • 没有应用程序(没有用户可以阻止应用程序并且永远不会从应用程序中获取任何内容,但只能使用弹出窗口): 使用Javascript为facebook sharer打开一个弹出窗口:

    http://www.facebook.com/sharer.php?u=<url to share>&t=<title of content>
    

    请注意,所有内容都必须为urlencoded。当然,您也可以将其用作链接。在这种情况下,请不要忘记og标记。

修改:请注意,Facebook上不允许“自动共享”。你必须向用户展示你想要以他的名义分享的内容,他必须能够接受并添加他的个人信息。只有使用应用程序和授权用户才能实现。

顺便说一句,这里解释的两种方法都可以在没有用户登录/授权的情况下工作。

Edit2:现在还有FB.ui的“共享”方法,用于发布链接或使用Open Graph Actions / Objects。

答案 1 :(得分:-2)

如果您有像我一样的动态网站,您可能非常想要我的代码。

  

注1:如果您没有应用程序,则无法执行此操作!如果你没有   一个应用程序,您只需转到https://developers.facebook.com/apps和   创造一个。

     

注2:阅读我的代码评论!

代码:

<? 
$redirect       = "http://www.SITE.com/thanks.html"; //After sharing, you redirect your visitor to thanks.html or just to the home page. Note that the URL given is the URL you set for your app! 
$link           = curPageURL(); //URL to the shared page (I will give you the function curPageURL() later).
$title       = Title(); //Title of the shared page (Note If you don't have a dynamic website you can simply ignore the PHP part)
$descriptionTag = Description(); //Description of the shared page
$pic             = Img(); //Image of the post or the logo of your website
echo "<script> 
        FB.init({appId: \"YOU_APP_ID_HERE\", status: true, cookie: true});
        function postToFeed() {
          // calling the API ...
          var obj = {
            method: 'feed',
            redirect_uri: '".$redirect."',
            link: '".$link."', 
            picture: '".$pic."',
            name: '".$title."',
            caption: '".$descriptionTag."',
            description: 'You_May_Want_To_Say_Something_About_Your_Web_Site_Here!'
          };
          function callback(response) {
            document.getElementById('msg').innerHTML = \"Post ID: \" + response['post_id'];
          }
          FB.ui(obj, callback);
        }
     </script>"; ?>
<a href="#" onclick='postToFeed(); return false;'>Share To Facebook</a>

注意: 不要忘记在代码中设置您的APP ID!

您需要使用函数curPageURL()才能共享当前的PHP页面!

代码:

<?
function curPageURL() {
 $pageURL = 'http';
 if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

不要忘记在我给你的代码的开头声明函数 curPageURL()