Кнопка «Поделиться» / пост на стене - Facebook API? - PullRequest
14 голосов
/ 09 сентября 2011

Я не хочу использовать кнопку, похожую на FB, и, видимо, «поделиться» устарело.Я пытаюсь сделать так, чтобы пользователи нажимали «поделиться» / «опубликовать на стене» на моем веб-сайте, а затем размещали сообщение в своей ленте новостей / профиле с информацией на моем веб-сайте / URL.

Я могуПохоже, что нет никакого кода, который бы это делал - у кого-нибудь есть пример?

И нужно ли им сначала подключаться?Или он может проверить, если они вошли в систему, если нет, войдите в систему, и он автоматически делится?

Спасибо!

Ответы [ 2 ]

20 голосов
/ 09 сентября 2011

Это возможно двумя способами:

  • Вы можете использовать Facebook Javascript SDK, если у вас есть приложение:
    FB.ui({
        method: 'feed',  
        link: 'absolute url',
        name: 'testtitle',
        caption: 'testcaption',
        description: 'testdescription',
        picture: 'absolute picurl',
        message: ''
    });

Обратите внимание, что "message" ДОЛЖНО быть пустым, вы также можете просто удалить его.

  • Без приложения (ни один пользователь не может заблокировать приложение и больше ничего не получать из приложения, но возможно только с помощью всплывающего окна): откройте всплывающее окно с Javascript для участника Facebook:

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

    Обратите внимание, что все должно быть urlencoded. Конечно, вы также можете просто использовать его как ссылку. И не забывайте теги og в этом случае.

Редактировать: Обратите внимание, что «автоматический обмен» на Facebook запрещен. Вы должны представить пользователю то, что вы хотите поделиться в его имени, и он должен быть в состоянии принять это и добавить свое личное сообщение. в любом случае возможно только с приложением и авторизованным пользователем.

Кстати, оба метода, описанные здесь, работают без входа / авторизации пользователя.

Edit2: Также есть метод "поделиться" с FB.ui теперь, чтобы опубликовать ссылку или использовать Open Graph Actions / Objects.

0 голосов
/ 18 марта 2013

Если у вас динамичный веб-сайт, как у меня, вы можете сильно захотеть мой код.

Примечание 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>

Примечание. Не забудьте указать в коде идентификатор своего приложения!

Вам необходимо использоватьфункция 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() в начале кода, который я вам даю!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...