Мені потрібно отримати через Facebook інформацію про користувача та надіслати приватне повідомлення всім його друзям. Це можливо?
Мені потрібно отримати через Facebook інформацію про користувача та надіслати приватне повідомлення всім його друзям. Це можливо?
Відповіді:
Відправка приватного повідомлення через 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
Ні, це неможливо. Для того, щоб ви могли надсилати будь-які повідомлення користувачеві 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 Chat API для надсилання приватних повідомлень, ось приклад у Ruby за допомогою xmpp4r_facebook
gem:
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.com. У цього є кілька мінусів:
1) Не у всіх (станом на цю публікацію) у своєму обліковому записі ввімкнено програму нових повідомлень.
2) Не всі зможуть налаштувати свою електронну адресу @ facebook.com у своєму додатку для повідомлень.
3) Не кожен вибере своє ім’я користувача (якщо навіть має ім’я користувача у Facebook) як свою електронну адресу.
Для мобільних додатків я зробив рішення, ввівши javascript у діалоговому вікні. У моєму додатку ios є прихований веб-перегляд. Це завантажує діалогове вікно надсилання повідомлення fb api .., тоді я ввожу трохи javascript, щоб встановити поля "на" та "повідомлення" та надішліть форму .. Так що кінцевому користувачеві не потрібно нічого робити. Повідомлення мовчки надіслано у поштову скриньку facebook ...
Для цього не існує графічного API, для надсилання повідомлення вам потрібно використовувати API для чату facebook xmpp, хороша новина: я створив клас php, який є надто простим у використанні, виклик функції та повідомлення буде надіслано, його з відкритим кодом, перевірте: facebook повідомлення api php в описі сказано, що це закрите джерело, але це було зроблено з відкритим кодом пізніше, див. перший коментар, ви можете клонувати з github. Зараз це відкрите джерело.
У цій темі сказано, що ви не можете надсилати приватні повідомлення групі друзів на facebook, але я знайшов це https://developers.facebook.com/docs/sharing/reference/send-dialog