Twitter и facebook совместно с обратными вызовами?
Я внедрил facebook и твиттер на свой сайт. Пользователи перенаправляются по следующим URL-адресам, когда нажимают на кнопку совместного доступа Twitter или Facebook.
http://www.facebook.com/sharer.php?u= '+ encodeURIComponent (location) +' & t = '+ encodeURIComponent (текст)
http://twitter.com/share?url= '+ location +' & text = '+ text
Я хочу сохранить имя пользователя и ссылку на tweet, если это возможно, в моей базе данных, когда кто-то из контента через твиттер, и я хочу сохранить URL-адрес профиля facebook и имя, когда кто-то делится им через facebook. Можно ли извлекать эти данные, когда кто-то успешно завершил процесс обмена?
Ответы
Ответ 1
API-интерфейс facebook javascript позволяет вам делиться и давать обратный вызов
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 и использовать его для хранения общих пользователей.
Ответ 2
Для звонка 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
Ответ 3
Как только вы откроете окно совместного использования FB, вы можете публиковать контент или нет. Нет функции обратного вызова, и невозможно узнать, завершил ли он процесс.
Возможно, вы захотите внедрить соединение FB и создать свою собственную форму для публикации в стене пользователя после заполнения полей (а также у вас есть возможность сохранить их в своей БД).
Я не знаю, предлагает ли Twitter функцию, которую вы запрашиваете, но я бы пошел на то же решение, что и выше.
Ответ 4
Для Facebook есть обновленный диалог доступа с обратным вызовом (Источник: 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
должен быть включен в ваши домены приложений.