Отправить личные сообщения друзьям

Мне нужно через Facebook подключить информацию о пользователе и отправить личное сообщение всем его друзьям. Является ли это возможным?

9 ответов

Отправка личного сообщения через API теперь возможна.

Вызвать это событие для отправки сообщения (инициализация объекта facebook должна быть сделана раньше).

to:user идентификатор facebook

function facebook_send_message(to) {
    FB.ui({
        app_id:'xxxxxxxx',
        method: 'send',
        name: "sdfds jj jjjsdj j j ",
        link: 'https://apps.facebook.com/xxxxxxxaxsa',
        to:to,
        description:'sdf sdf sfddsfdd s d  fsf s '

    });
}

свойства

  • app_id
    Идентификатор вашего приложения. Требуется, но автоматически указывается большинством SDK.

  • redirect_uri
    URL-адрес для перенаправления после того, как пользователь нажимает кнопки "Отправить" или "Отмена" в диалоговом окне. Требуется, но автоматически указывается большинством SDK.

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

  • в
    Идентификатор пользователя или имя пользователя для отправки сообщения. Как только появится диалоговое окно, пользователь может указать дополнительных пользователей, группы Facebook и адреса электронной почты, на которые следует отправить сообщение. При отправке контента в группу в Facebook он будет опубликован на стене группы.

  • ссылка на сайт
    (обязательно) Ссылка для отправки в сообщении.

  • картина
    По умолчанию картинка будет сделана по указанной ссылке. URL-адрес изображения для включения в сообщение. Картинка будет показана рядом с ссылкой.

  • name По умолчанию заголовок будет взят по указанной ссылке. Имя ссылки, т. Е. Текст, отображаемый пользователем.

  • описание
    По умолчанию описание будет взято по указанной ссылке. Описательный текст для показа под ссылкой.

Подробнее здесь

@VishwaKumar:

Для отправки сообщения с пользовательским текстом необходимо добавить параметр "сообщение" в FB.ui, но я думаю, что эта функция устарела. Вы не можете предварительно заполнить сообщение больше. Хоть попробуй один раз.

FB.ui({
  method: 'send',
  to: '1234',
  message: 'A request especially for one person.',
  data: 'tracking information for the user'
});

Смотрите эту ссылку: http://fbdevwiki.com/wiki/FB.ui

Вы можете использовать Facebook Chat API для отправки личных сообщений, вот пример использования Ruby xmpp4r_facebook перл:

sender_chat_id = "-#{sender_uid}@chat.facebook.com"
receiver_chat_id = "-#{receiver_uid}@chat.facebook.com"
message_body = "message body"
message_subject = "message subject"

jabber_message = Jabber::Message.new(receiver_chat_id, message_body)
jabber_message.subject = message_subject

client = Jabber::Client.new(Jabber::JID.new(sender_chat_id))
client.connect
client.auth_sasl(Jabber::SASL::XFacebookPlatform.new(client,
   ENV.fetch('FACEBOOK_APP_ID'), facebook_auth.token,
   ENV.fetch('FACEBOOK_APP_SECRET')), nil)
client.send(jabber_message)
client.close

Нет, это невозможно. Чтобы вы могли отправлять сообщения любого типа пользователю Facebook, вам необходимо разрешение этого пользователя.

Если кто-то входит на ваш сайт с помощью Facebook Connect, он явно соглашается поделиться своими данными Facebook с вашим сайтом, и вы сможете отправить этому человеку сообщение по обычным каналам. Вы также сможете получить список их друзей. Тем не менее, вы не можете отправлять сообщения друзьям.

Сейчас это невозможно, но есть обходной путь. Вы можете взаимодействовать с пользователями в общедоступной сфере и просить их отправлять вам личные сообщения, но вы не можете отправлять личные сообщения назад, только публичные. Конечно, все зависит от того, предоставит ли пользователь правильные разрешения.

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

Найти друзей

#if authenticated
https://graph.facebook.com/me/friends
http://developers.facebook.com/docs/reference/api/user/

Опубликовать в открытом доступе

http://developers.facebook.com/docs/reference/api/status/

Получить сообщения, отправленные этому пользователю (если дано разрешение)

http://developers.facebook.com/docs/reference/api/message/

Одним из обходных путей, хотя и не самым удачным, является использование нового адреса электронной почты @facebook.com. У этого есть несколько недостатков:

1) Не у всех (на момент публикации) приложение новых сообщений включено в их учетной записи.

2) Не все настроят свою электронную почту @facebook.com в своем приложении сообщений.

3) Не каждый выберет в качестве своего адреса электронной почты свое имя пользователя (если у него даже есть имя пользователя в Facebook).

Ты не можешь. У API Facebook есть read_mailbox, но нет расширенного разрешения write_mailbox. Я предполагаю, что это сделано для того, чтобы приложения-спамеры не заполняли почтовые ящики друзей.

Для мобильного приложения я сделал решение, вставив JavaScript в диалоговое окно. В моем приложении ios есть скрытый веб-просмотр. Это загружает диалоговое окно отправки сообщения fb api.. затем я внедряю некоторый javascript, чтобы установить поля "to" и "message" и отправляю форму.. Так что конечному пользователю не нужно ничего делать. Сообщение отправлено на входящие в Facebook без уведомления...

В этой теме говорится, что вы не можете отправлять личные сообщения группе друзей на Facebook, но я нашел это https://developers.facebook.com/docs/sharing/reference/send-dialog

Для этого нет графика api, вам нужно использовать Facebook xmpp chat api для отправки сообщения, хорошая новость: я создал php-класс, который слишком прост в использовании, вызовите функцию, и сообщение будет отправлено, его open source, проверьте его: facebook message api php В описании сказано, что это закрытый источник, но позже он стал открытым, см. первый комментарий, вы можете клонировать его из github. Теперь это открытый исходный код.

Другие вопросы по тегам