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

89

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

ИСПРО
источник
1
Я понимаю, что это не решает вопрос OP, но те, кто ищет способ ответить на личные сообщения, могут найти это полезным: stackoverflow.com/questions/9598369/…
Trevor

Ответы:

74

Теперь можно отправлять личные сообщения через 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.

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

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

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

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

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

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

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

@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

Сомнатх Мулук
источник
3
Это решение было давно. Это не решает проблему полностью, так как вы должны использовать всплывающее окно Facebook и можете заполнить только одного человека (на этом этапе отслеживайте ошибку здесь ). Полное решение позволяет вам использовать стандартный API для отправки сообщения, как вы хотите, хотя кажется, что Facebook убрал это навсегда.
Скотт
2
@Somnath, спасибо, что опубликовали решение! Вы знаете, есть ли способ обойти окно записи сообщения и просто отправить сообщение напрямую?
CyberJunkie
2
@CyberJunkie: Я думаю, что facebook не предоставляет такой возможности обхода. Пользователь должен нажать кнопку «Отправить сообщение». В противном случае ваш почтовый ящик будет забит рекламой.
Сомнатх Мулук
@Somnath: Я попробовал ваше решение, и оно работает, но есть ли способ заполнить сообщение во всплывающем окне пользовательскими сообщениями?
VishwaKumar
@VishwaKumar: Вы имеете в виду, что окно сообщения должно быть заполнено настраиваемым сообщением при его открытии?
Somnath Muluk
9

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

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

зомбат
источник
Мой гугл-фу меня подводит. Есть ссылки, как это сделать?
Randell
9

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

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

Заводить друзей

#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/
ДжиминиСверчок
источник
: Теперь мы можем отправить личное сообщение. Я дал ответ.
Сомнатх Мулук,
8

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

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
Далибор Насевич
источник
сообщение об этом в блоге - dalibornasevic.com/posts/…
Дмитрий Хрюкин,
у вас есть аналогичный код на php для отправки личного сообщения?
Snehal S
3
это устарело с версии 2.0 после 1 мая 2015 г.
Дэниел Кукье
7

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

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

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

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

Скотт
источник
6

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

Анураг
источник
2

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

ребенок
источник
вы можете объяснить об этом подробнее?
Totty.js
@Totty, можешь показать свою реализацию? Мне это очень нужно для моего приложения для iOS.
Alex
0

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

Нищал Гаутам
источник