Кнопка 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()
в начале кода, который я вам даю!