Ответы пользователя по тегу Facebook
  • Ошибка в при получении маркера доступа к странице Graph API Explorer?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Чтобы иметь право запрашивать manage_pages нужно пройти проверку. Для этого нужно будет доказать Facebook, что это разрешение действительно нужно и показать, каким образом оно используется (сделать screencast). Практика показывает, что англоязычные запросы на проверку обрабатываются быстрее.

    См. раздел Проверка приложения.

    5b3b8d472cb04328696971.png
    Ответ написан
    Комментировать
  • Работа с facebook webhook,как настроить?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    1. Открываем страницу https://developers.facebook.com/apps/ и создаем или используем существующее приложение.
    2. Открываем страницу настроек приложения.
    3. Добавляем Webhooks.
      5b34e1bfe7c8d794608343.png
    4. Переходим в раздел Webhooks, выбираем объект, например Page, и жмем на кнопку Subscribe to this object.

      5b34e2b9bf343559317616.png
    5. В появившемся окне указываем адрес страницы обратного вызова. Обязательно HTTPS. Вводим любой набор символов, который будет передан на страницу обратного вызова. Жмем на кнопку Подтвердить и сохранить.

      5b34e2f0606c0189701950.png
    6. В коде страницы обратного вызова обрабатываем GET-параметры hub.mode, hub.challenge и hub.verify_token. Проверяем, что значение hub.verify_token соответствует значению, указанному при добавлении адреса обратного вызова в настройках Webhooks на сайте Facebook и если значение правильное отдаем в ответ значение hub.challenge (HTTP200, text/plain), чтобы Facebook мог использовать этот адрес.

      if (isset($_GET['hub.verify_token']) && $_GET['hub.verify_token'] == '123') {
        header('Content-Type: text/plain');
        echo $_GET['hub.challenge'];
      }


    7. После успешного добавления адреса обратного вызова, добавляем нужные подписки в настройках Webhooks. Для комментариев, скорее всего feed.

      5b34e304368d8832126084.png
    8. На странице обратного вызова принимаем от сервера Facebook запросы POST.

      echo file_get_contents('php://input');

    Ответ написан
  • Как правильно создать кнопку "поделиться" в facebook?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Адрес нужно указывать. В вашем примере, вместо адреса передается текст "URL".

    Можно сделать передачу параметров через объект, для гибкости:
    Share = {
      getParams: function(params) {
        // используем полученные параметры, 
        // либо создаем пустой объект, чтобы не было ошибок
        params = params || {};
        // в качестве url используем params.url,
        // либо адрес текущей страницы (window.location.href), если params.url не указан
        params.url = params.url || window.location.href;
        // используем params.title, либо заголовок документа
        params.title = params.title || document.title;
        // и т.п.
        params.description = params.description || '';
        params.img = params.img || '';
    
        return params;
      },
    
      vkontakte: function(params) {
        params = Share.getParams(params);
        url = 'http://vkontakte.ru/share.php?';
        url += 'url=' + encodeURIComponent(params.url);
        url += '&title=' + encodeURIComponent(params.title);
        url += '&description=' + encodeURIComponent(params.description);
        url += '&image=' + encodeURIComponent(params.img);
        url += '&noparse=true';
        Share.popup(url);
      },
    
      facebook: function(params) {
      	params = Share.getParams(params);
        url = 'http://www.facebook.com/sharer.php?s=100';
        url += '&p[title]=' + encodeURIComponent(params.title);
        url += '&p[summary]=' + encodeURIComponent(params.description);
        url += '&p[url]=' + encodeURIComponent(params.url);
        url += '&p[images][0]=' + encodeURIComponent(params.img);
        Share.popup(url);
      },
    
      twitter: function(params) {
        params = Share.getParams(params);
        url = 'http://twitter.com/share?';
        url += 'text=' + encodeURIComponent(params.description);
        url += '&url=' + encodeURIComponent(params.img);
        url += '&counturl=' + encodeURIComponent(params.img);
        Share.popup(url);
      },
    
      popup: function(url) {
        window.open(url, '', 'toolbar=0,status=0,width=626,height=436');
      }
    };

    <span title="Поделиться в Facebook">
      <a onclick="Share.facebook({url: 'https://toster.ru/q/294480'})">
        <i class="facebook square icon">Facebook</i>
      </a>
    </span>
    <span title="Поделиться в Twitter">
      <a onclick="Share.twitter({description: 'Hello world!'})">
        <i class="twitter square icon">Twitter</i>
      </a>
    </span>
    <span title="Поделиться ВКонтакте">
      <a onclick="Share.vkontakte({url: 'https://toster.ru/q/294480', description: 'Ответ на вопрос', 
    title: 'Как правильно создать кнопку «поделиться» в facebook?'})">
      <i class="vk icon">VK</i>
      </a>
    </span>

    Посмотреть.

    Если память не изменяет, Facebook с недавних пор (или уже давних) игнорирует передаваемые описания и заголовки страниц и извлекает необходимую информацию самостоятельно, непосредственно с указанной ссылки (преимущественно из тегов Open Graph).
    Ответ написан
    1 комментарий
  • Как сделать ссылку шаринга страницы на facebook c кастомной картинкой для шаринга не используя meta теги?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Примерно так:
    http://www.facebook.com/sharer.php?s=100&p[url]=адрес ссылки&p[title]=заголовок&p[summary]=описание&p[images][0]=ссылка на картинку

    где p[images] - коллекция ссылок на изображения.

    Но не всегда может цеплять.

    --------------------------------------------------------------------------------

    Обновлено: К сожалению, теперь уже такое невозможно сделать. Только через мета-теги.
    4ee4a2cc7011466d885181797a78a46d.png
    Ответ написан
    1 комментарий