Facebook API: "Поделиться" сообщение, уже опубликованное на стене страницы?

Кажется, я не могу найти ответ. Вероятно, мой Google-фу меня подвела.

Есть ли способ использовать FB Graph API (или каким-либо другим способом), чтобы "разделить" сообщение на странице с аутентифицированной пользовательской стенкой, чтобы увеличить количество "акций" как показано на прилагаемой фотографии?

share counter next to page's post

Ответ 1

Хорошо, мой ответ варьируется между "нет" и "возможно" в зависимости от того, как именно вы хотите достичь этого.

Вы хотите, чтобы это был программный механизм автоматического обмена, полностью зависящий от кода, который не требует, чтобы Пользователь активно делился им?

Если да, то ответ отрицательный. На самом деле это также, вероятно, также нарушит политику платформы, но это невозможно.

Не возражаете ли вы, если это общий доступ к диалогам, который имеет непоследовательное поведение для разных типов сообщений на странице?

Если это так, вам повезло. В некотором роде. Существует теперь устаревшая функция, называемая "sharer.php", которая раньше использовалась для кнопки "Поделиться", когда Facebook все еще поддерживал это. Хотя это было устаревшим, его вряд ли удастся удалить, но, к сожалению, это означает, что документации нет. К счастью, это действительно просто:

http://www.facebook.com/sharer.php?u=https://www.facebook.com/coca-cola/posts/10152033676358306

Вышеприведенный пример использования публикации на странице Coca Cola Facebook. Конечно, вы хотите, чтобы URL кодировал параметр u. У вас может быть это как простая ссылка, или вы можете прикрепить его с помощью Javascript к кнопке onclick. Однако здесь выходят оговорки:

  • Кажется, что это работает только с сообщениями, которые сами не являются "общедоступными" сообщениями, такими как опубликованный снимок экрана.
  • У меня нет полного списка типов, с которыми он работает, но Status Updates работают отлично.

Если вы все равно хотите продолжить этот маршрут, вот мои рекомендации:

  • Используя объект Graph API-страницы, подключите соединение /posts
  • Отфильтруйте все, что находится в type: status
  • Чтобы создать ссылку на это для использования с sharer.php, либо проанализируйте каждый идентификатор сообщения типа 12345678_987654321 в https://www.facebook.com/12345678/posts/987654321, либо возьмите поле /actions/link из каждой Почты (там будет один для комментария и один для Like, но они будут одинаковыми)
  • URLEncode это и использовать его с sharer.php, как указано выше
  • Для сообщений с пометкой type: link возьмите поле link и используйте его с sharer.php, как указано выше. Это не увеличит счетчик акций, как вы хотите, но он будет правильно переименовывать ссылку.

Надеюсь, что это поможет вам, в конечном счете, ответ, который лучше всего подходит для вас, может быть, "нет".

Ответ 2

Да, вы можете поделиться с помощью graph2 api. Как вы это делаете, используйте край /feed и передайте URL-адрес, который вы хотите использовать в качестве ссылки.

POST /v2.2/{page-id}/feed HTTP/1.1
Host: graph.facebook.com

link=https://www.facebook.com/{page_id}/posts/{post_id}

Разрешения на опубликованную публикацию применяются.

https://developers.facebook.com/docs/graph-api/reference/v2.2/page/feed

Ответ 3

Используете ли вы новый JS SDK? если да, обратитесь к этому сообщению

"С новым JS SDK вы можете использовать кнопку, и она будет отображаться и использоваться, но поддерживаемые типы меньше, и вы потеряете общий счет, если вы его использовали".

ref: Работает ли кнопка Share Share с новым SDK для Javascript?