Wysyłaj prywatne wiadomości do znajomych


89

Muszę uzyskać przez Facebook connect informacje o użytkowniku i wysłać prywatną wiadomość do wszystkich jego znajomych. Czy to możliwe?


1
Zdaję sobie sprawę, że to nie rozwiązuje pytania OP, ale ci, którzy szukają sposobu na odpowiadanie na prywatne wiadomości, mogą uznać to za przydatne: stackoverflow.com/questions/9598369/ ...
Trevor

Odpowiedzi:


74

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


3
To rozwiązanie istnieje od jakiegoś czasu. Nie rozwiązuje to całkowicie problemu, ponieważ musisz użyć wyskakującego okienka Facebooka i może wypełnić tylko jedną osobę (w tym momencie śledź błąd tutaj ). Pełne rozwiązanie pozwala na użycie standardowego API do wysyłania wiadomości w dowolny sposób, chociaż wydaje się, że Facebook mógł to odebrać na dobre.
Scott

2
@Somnath, dzięki za opublikowanie rozwiązania! Czy wiesz, czy można ominąć okno pisania wiadomości i po prostu wysłać wiadomość bezpośrednio?
CyberJunkie

2
@CyberJunkie: Myślę, że Facebook nie zapewnia takiej funkcji omijania. Użytkownik musi kliknąć przycisk Wyślij wiadomość. W przeciwnym razie Twoja skrzynka odbiorcza będzie pełna reklam.
Somnath Muluk

@Somnath: Wypróbowałem twoje rozwiązanie i działa, ale czy istnieje sposób na wypełnienie wiadomości w wyskakującym okienku niestandardowymi wiadomościami?
VishwaKumar

@VishwaKumar: Czy masz na myśli, że pole wiadomości powinno być wypełnione niestandardową wiadomością po otwarciu?
Somnath Muluk

9

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.


Mój Google-fu mnie zawodzi. Masz linki, jak to zrobić?
Randell,

9

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/

: Teraz możemy wysłać prywatną wiadomość. Dałem odpowiedź.
Somnath Muluk

8

Możesz użyć Facebook Chat API do wysyłania prywatnych wiadomości, oto przykład w Rubim używający 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

wpis na blogu na ten temat - dalibornasevic.com/posts/ ...
Dmitry Khryukin

czy masz podobny kod w php do wysłania prywatnej wiadomości?
Snehal S

3
jest to przestarzałe od wersji 2.0 po 1 maja 2015
Daniel Cukier

7

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.


6

Nie możesz. Facebook API ma read_mailbox, ale nie ma rozszerzonych uprawnień write_mailbox. Zgaduję, że ma to na celu zapobieganie zalewaniu skrzynek odbiorczych znajomych przez aplikacje spamerskie.


2

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 ...


czy możesz wyjaśnić więcej na ten temat?
Totty.js

@Totty Czy możesz pokazać swoją realizację? Potrzebuję tego w mojej aplikacji na iOS.
Alex

0

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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.