Надіслати приватні повідомлення друзям


89

Мені потрібно отримати через Facebook інформацію про користувача та надіслати приватне повідомлення всім його друзям. Це можливо?


1
Я усвідомлюю, що це не вирішує питання ОП, але ті, хто шукає спосіб відповісти на приватні повідомлення, можуть знайти це корисним: stackoverflow.com/questions/9598369/…
Тревор,

Відповіді:


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 опублікує його на стіні групи.

  • посилання
    (обов’язкове) Посилання для надсилання у повідомленні.

  • picture
    За замовчуванням знімок буде зроблено за вказаним посиланням. URL-адреса зображення, яке потрібно включити до повідомлення. Зображення буде показано поруч із посиланням.

  • назва За замовчуванням заголовок буде взятий із вказаного посилання. Назва посилання, тобто текст для відображення, на який користувач натисне.

  • description
    За замовчуванням опис буде взятий із вказаного посилання. Описовий текст для показу під посиланням.

Дивіться більше тут

@VishwaKumar:

Для надсилання повідомлення зі спеціальним текстом потрібно додати параметр 'message' 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 із вашим сайтом, і ви зможете надіслати цій людині повідомлення за звичайними каналами. Ви також зможете отримати список їхніх друзів. Однак ви не можете надсилати повідомлення друзям.


Мій Google-fu підводить мене. Є посилання на те, як це зробити?
Ренделл,

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/

: Тепер ми можемо відправити приватне повідомлення. Я дав відповідь.
Somnath Muluk

8

Ви можете використовувати Facebook Chat API для надсилання приватних повідомлень, ось приклад у Ruby за допомогою xmpp4r_facebookgem:

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

Ви не можете. Facebook API має read_mailbox, але не має розширеного дозволу write_mailbox. Я здогадуюсь, що це зроблено для запобігання спам-програмам затоплення поштових скриньок друга.


2

Для мобільних додатків я зробив рішення, ввівши javascript у діалоговому вікні. У моєму додатку ios є прихований веб-перегляд. Це завантажує діалогове вікно надсилання повідомлення fb api .., тоді я ввожу трохи javascript, щоб встановити поля "на" та "повідомлення" та надішліть форму .. Так що кінцевому користувачеві не потрібно нічого робити. Повідомлення мовчки надіслано у поштову скриньку facebook ...


Ви можете пояснити більше про це?
Totty.js

@Totty, ти можеш показати свою реалізацію? Мені це дуже потрібно для мого додатка для iOS.
Олексій

0

Для цього не існує графічного API, для надсилання повідомлення вам потрібно використовувати API для чату facebook xmpp, хороша новина: я створив клас php, який є надто простим у використанні, виклик функції та повідомлення буде надіслано, його з відкритим кодом, перевірте: facebook повідомлення api php в описі сказано, що це закрите джерело, але це було зроблено з відкритим кодом пізніше, див. перший коментар, ви можете клонувати з github. Зараз це відкрите джерело.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.