Twitter и Facebook делятся с обратными вызовами? - PullRequest
15 голосов
/ 12 февраля 2011

Я добавил Facebook и Twitter на свой веб-сайт.Пользователи перенаправляются на следующие URL-адреса, когда они нажимают кнопку «Поделиться» в Twitter или Facebook.

http://www.facebook.com/sharer.php?u='+encodeURIComponent(location)+'&t='+encodeURIComponent(text)

http://twitter.com/share?url='+location+'&text='+text

Я хочу сохранить имя пользователя иТвитнуть ссылку, если это возможно, в моей базе данных, когда кто-то контент через Twitter, и я хочу сохранить URL-адрес профиля Facebook и имя, когда кто-то делится им через Facebook.Можно ли получить эти данные, когда кто-то успешно завершил процесс обмена?

Ответы [ 4 ]

19 голосов
/ 06 июня 2011

API javascript Facebook позволяет вам делиться и дает вам обратный вызов

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 и поставить следующий код сразу после открывающего тега body

<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 и использовать его для хранения информации о пользователях.

15 голосов
/ 17 октября 2013

Для твиттер-звонка с обратным вызовом, вот как я это сделал в 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...
    });
});

Твиттер-ссылка выглядит так:

      <a href="https://twitter.com/intent/tweet?url=URLTOBESHARED">Share on Twitter</a>

Ссылка: https://dev.twitter.com/docs/intents/events

0 голосов
/ 19 июля 2016

Для 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 должен быть в белом списке в ваших доменах приложений.

0 голосов
/ 12 февраля 2011

Как только вы откроете окно общего доступа к FB, пользователь может публиковать контент или нет.Функция обратного вызова отсутствует, и невозможно узнать, завершил ли он процесс.

Возможно, вы захотите реализовать FB-соединение и создать собственную форму для публикации на стене пользователя после того, как он заполнит поляа также у вас есть возможность сохранить их в своей БД).

Я не знаю, предлагает ли Twitter запрашиваемую вами функцию, но я бы выбрал то же решение, что и выше.

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