Muszę uzyskać przez Facebook connect informacje o użytkowniku i wysłać prywatną wiadomość do wszystkich jego znajomych. Czy to możliwe?
Muszę uzyskać przez Facebook connect informacje o użytkowniku i wysłać prywatną wiadomość do wszystkich jego znajomych. Czy to możliwe?
Odpowiedzi:
Możliwe jest teraz wysyłanie wiadomości prywatnej przez API.
Uruchom to zdarzenie w celu wysłania wiadomości (inicjalizację obiektu facebook należy wykonać wcześniej).
to:user
identyfikator facebooka
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 '
});
}
Nieruchomości
app_id
Identyfikator aplikacji. Wymagane, ale określane automatycznie przez większość zestawów SDK.
redirect_uri
Adres URL do przekierowania po kliknięciu przez użytkownika przycisków Wyślij lub Anuluj w oknie dialogowym. Wymagane, ale określane automatycznie przez większość zestawów SDK.
display
Tryb wyświetlania, w którym ma być renderowane okno dialogowe. Jest to automatycznie określane przez większość zestawów SDK.
do
Identyfikator użytkownika lub nazwa użytkownika, do którego ma zostać wysłana wiadomość. Gdy pojawi się okno dialogowe, użytkownik może określić dodatkowych użytkowników, grupy na Facebooku i adresy e-mail, na które ma wysłać wiadomość. Wysłanie treści do grupy na Facebooku spowoduje umieszczenie jej na tablicy grupy.
łącze
(wymagane) Łącze do wysłania w wiadomości.
obrazek
Domyślnie zdjęcie zostanie zrobione z podanego linku. Adres URL obrazu, który ma zostać dołączony do wiadomości. Zdjęcie zostanie wyświetlone obok linku.
nazwa Domyślnie tytuł zostanie pobrany z podanego linku. Nazwa linku, czyli tekst do wyświetlenia, w który kliknie użytkownik.
opis
Domyślnie opis zostanie pobrany z podanego linku. Opisowy tekst wyświetlany pod linkiem.
Zobacz więcej tutaj
@VishwaKumar:
Aby wysłać wiadomość z niestandardowym tekstem, musisz dodać parametr „wiadomość” do FB.ui
, ale myślę, że ta funkcja jest przestarzała. Nie możesz już wstępnie wypełnić wiadomości. Chociaż spróbuj raz.
FB.ui({
method: 'send',
to: '1234',
message: 'A request especially for one person.',
data: 'tracking information for the user'
});
Zobacz ten link: http://fbdevwiki.com/wiki/FB.ui
Nie, to nie jest możliwe. Aby móc wysyłać jakiekolwiek wiadomości do użytkownika Facebooka, potrzebujesz na to zgody tego użytkownika.
Jeśli ktoś loguje się do Twojej witryny za pomocą Facebook Connect, wyraźnie zgadza się na udostępnianie swoich danych z Facebooka Twojej witrynie, a następnie będziesz mógł wysłać tej osobie wiadomość za pośrednictwem zwykłych kanałów. Możesz także pobrać ich listę znajomych. Nie możesz jednak wysyłać wiadomości do znajomych.
Nie jest to teraz możliwe, ale istnieje obejście. Możesz nawiązać kontakt z użytkownikiem w sferze publicznej i poprosić go o przesłanie prywatnych wiadomości, ale nie możesz odesłać prywatnych wiadomości, tylko te publiczne. Oczywiście wszystko zależy od tego, czy użytkownik nada Ci odpowiednie uprawnienia.
Jeśli dałeś pozwolenie na dostęp do znajomych danej osoby, możesz teoretycznie opublikować na tej tablicy użytkowników odnośniki do każdego z nich, prosząc ich o publiczną interakcję z tobą, a następnie potencjalnie prywatnie wysyłając ci wiadomość.
Zdobądź przyjaciół
#if authenticated
https://graph.facebook.com/me/friends
http://developers.facebook.com/docs/reference/api/user/
Opublikuj w domenie publicznej
http://developers.facebook.com/docs/reference/api/status/
Otrzymuj wiadomości wysyłane do tego użytkownika (jeśli ma pozwolenie)
http://developers.facebook.com/docs/reference/api/message/
Możesz użyć Facebook Chat API do wysyłania prywatnych wiadomości, oto przykład w Rubim używający 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
Jednym z obejść, choć niezbyt dobrym, jest użycie nowego adresu e-mail @ facebook.com. Ma to kilka wad:
1) Nie każdy (w momencie tego wpisu) ma włączoną aplikację nowych wiadomości na swoim koncie.
2) Nie każdy będzie miał skonfigurowany adres e-mail @ facebook.com w aplikacji do obsługi wiadomości.
3) Nie każdy wybierze swoją nazwę użytkownika (jeśli ma nawet nazwę użytkownika na Facebooku) jako swój adres e-mail.
W przypadku aplikacji mobilnej rozwiązałem to, wstrzykując javascript w oknie dialogowym. W mojej aplikacji na iOS jest ukryty widok sieciowy. To załaduje okno dialogowe wysyłania wiadomości fb, a następnie wstrzykuję trochę javascript, aby ustawić pola „do” i „wiadomość”, i wyślij formularz. Aby użytkownik końcowy nie musiał nic robić. Wiadomość wysłana cicho do skrzynki odbiorczej na Facebooku ...
Nie ma do tego graficznego interfejsu API, aby wysłać wiadomość, musisz użyć interfejsu facebook xmpp chat api, dobra wiadomość jest taka: stworzyłem klasę php, która jest zbyt łatwa w użyciu, wywołaj funkcję i zostanie wysłana wiadomość, jej open source, sprawdź to: facebook wiadomość api php opis mówi, że jest to zamknięte źródło, ale zostało utworzone jako otwarte później, zobacz pierwszy komentarz, możesz sklonować z github. To jest teraz open source.
Ten wątek mówi, że nie możesz wysyłać prywatnych wiadomości do grupy znajomych na Facebooku, ale znalazłem to https://developers.facebook.com/docs/sharing/reference/send-dialog