Кнопка Share/post to wall - Facebook API?

Я не хочу использовать кнопку FB, и, по-видимому, "share" устарел. То, что я пытаюсь сделать, это заставить пользователей нажимать "share" / "post to wall" с моего сайта, а затем помещает сообщение в свою новость/профиль с информацией на моем сайте /url.

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

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

Спасибо!

Ответы

Ответ 1

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

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

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

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

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

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

Изменить:. Помните, что "автообмен" не разрешен на facebook. вы должны представить пользователю то, что хотите поделиться своим именем, и он должен принять его и добавить свое личное сообщение. возможно только с приложением и авторизованным пользователем.

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

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

Ответ 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 в коде!

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