Invia messaggi privati ​​agli amici


Risposte:


74

L'invio di messaggi privati ​​tramite API è ora possibile.

Attiva questo evento per l'invio del messaggio (l'inizializzazione dell'oggetto Facebook deve essere eseguita prima).

to:user id di 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 '

    });
}

Proprietà

  • app_id
    L'identificatore della tua applicazione. Obbligatorio, ma specificato automaticamente dalla maggior parte degli SDK.

  • redirect_uri
    L'URL a cui reindirizzare dopo che l'utente ha fatto clic sui pulsanti Invia o Annulla nella finestra di dialogo. Obbligatorio, ma specificato automaticamente dalla maggior parte degli SDK.

  • display
    La modalità di visualizzazione in cui visualizzare la finestra di dialogo. Viene specificato automaticamente dalla maggior parte degli SDK.

  • a
    Un ID utente o nome utente a cui inviare il messaggio. Quando viene visualizzata la finestra di dialogo, l'utente può specificare ulteriori utenti, gruppi Facebook e indirizzi e-mail a cui inviare il messaggio. L'invio di contenuto a un gruppo Facebook lo pubblicherà sulla bacheca del gruppo.

  • link
    (obbligatorio) Il link da inviare nel messaggio.

  • immagine
    Per impostazione predefinita, verrà scattata un'immagine dal collegamento specificato. L'URL di un'immagine da includere nel messaggio. L'immagine verrà mostrata accanto al collegamento.

  • nome Per impostazione predefinita verrà preso un titolo dal collegamento specificato. Il nome del collegamento, ovvero il testo da visualizzare su cui l'utente farà clic.

  • descrizione
    Per impostazione predefinita, verrà presa una descrizione dal collegamento specificato. Testo descrittivo da mostrare sotto il collegamento.

Vedi di più qui

@VishwaKumar:

Per inviare messaggi con testo personalizzato, devi aggiungere il parametro "messaggio" a FB.ui, ma penso che questa funzione sia deprecata. Non puoi più precompilare il messaggio. Anche se provaci una volta.

FB.ui({
  method: 'send',
  to: '1234',
  message: 'A request especially for one person.',
  data: 'tracking information for the user'
});

Vedi questo link: http://fbdevwiki.com/wiki/FB.ui


3
Questa soluzione esiste da un po '. Non risolve completamente il problema in quanto devi utilizzare il popup di Facebook e puoi popolare solo una singola persona (a questo punto, traccia il bug qui ). Una soluzione completa ti consente di utilizzare l'API standard per inviare un messaggio come preferisci, anche se sembra che Facebook possa averlo eliminato per sempre.
Scott

2
@ Somnath, grazie per aver pubblicato la soluzione! Sai se esiste un modo per bypassare la finestra di scrittura del messaggio e inviare direttamente il messaggio?
CyberJunkie

2
@ CyberJunkie: Penso che Facebook non fornisca tale funzionalità di bypass. L'utente deve fare clic sul pulsante Invia messaggio. Altrimenti la tua casella di posta sarà piena di pubblicità.
Somnath Muluk

@ Somnath: ho provato la tua soluzione e funziona, ma c'è un modo per popolare il messaggio nel popup con messaggi personalizzati?
VishwaKumar

@VishwaKumar: Vuoi dire che la finestra del messaggio dovrebbe essere riempita con un messaggio personalizzato quando viene aperta?
Somnath Muluk,

9

No, non è possibile. Per poter inviare messaggi di qualsiasi tipo a un utente di Facebook, è necessaria l'autorizzazione di tale utente per farlo.

Se qualcuno accede al tuo sito con Facebook Connect, accetta esplicitamente di condividere i propri dati di Facebook con il tuo sito e sarai quindi in grado di inviare a quella persona un messaggio attraverso i normali canali. Potresti anche recuperare la loro lista di amici. Tuttavia, non puoi inviare messaggi agli amici.


Il mio Google-fu mi sta deludendo. Hai collegamenti su come eseguire questa operazione?
Randell

9

Questo non è possibile ora, ma c'è una soluzione. Puoi interagire con l'utente nell'area pubblica e chiedere loro di inviarti messaggi privati, ma non puoi restituire messaggi privati, solo quelli pubblici. Ovviamente, tutto dipende dal fatto che l'utente ti dia le autorizzazioni corrette.

Se hai dato il permesso di accedere agli amici di una persona, puoi teoricamente postare sulla bacheca degli utenti con riferimenti a ciascuno degli amici, chiedendo loro di interagire pubblicamente con te e quindi potenzialmente inviarti messaggi privati.

Ottieni amici

#if authenticated
https://graph.facebook.com/me/friends
http://developers.facebook.com/docs/reference/api/user/

Pubblica nel pubblico dominio

http://developers.facebook.com/docs/reference/api/status/

Ricevi messaggi inviati a quell'utente (se autorizzato)

http://developers.facebook.com/docs/reference/api/message/

: Ora possiamo inviare un messaggio privato ora. Ho dato risposta.
Somnath Muluk,

8

Puoi utilizzare l'API della chat di Facebook per inviare messaggi privati, ecco un esempio in Ruby usando 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

il post del blog su questo - dalibornasevic.com/posts/…
Dmitry Khryukin

hai il codice simile in php per inviare messaggi privati?
Snehal S

3
questo è deprecato dalla v2.0 dopo il 1 ° maggio 2015
Daniel Cukier

7

Una soluzione alternativa, sebbene non eccezionale, è utilizzare il nuovo indirizzo e-mail @ facebook.com. Ci sono alcuni aspetti negativi in ​​questo:

1) Non tutti (a partire da questo messaggio) hanno l'applicazione per i nuovi messaggi abilitata nel proprio account.

2) Non tutti avranno configurato la propria e-mail @ facebook.com nella propria app dei messaggi.

3) Non tutti sceglieranno il loro nome utente (se hanno anche un nome utente Facebook) come indirizzo email.


6

Non puoi. L'API di Facebook ha read_mailbox ma nessun permesso esteso write_mailbox. Immagino che questo venga fatto per impedire alle app di spam di inondare le caselle di posta degli amici.


2

Per l'applicazione mobile ho fatto una soluzione inserendo javascript nella finestra di dialogo. C'è una visualizzazione web nascosta nella mia app ios. Che carica l'api di dialogo di invio messaggio fb .. poi inserisco un po 'di javascript per impostare i campi "a" e "messaggio" e invia il modulo .. In modo che l'utente finale non debba fare nulla. Messaggio inviato silenziosamente alla posta in arrivo di Facebook ...


puoi spiegare di più su questo?
Totty.js

@Totty puoi mostrare la tua realizzazione? Ne ho davvero bisogno per la mia app iOS.
Alex

0

Non esiste alcuna API del grafico per questo, è necessario utilizzare l'API della chat xmpp di Facebook per inviare il messaggio, la buona notizia è: ho creato una classe php che è troppo facile da usare, chiama una funzione e il messaggio verrà inviato, il suo open source, dai un'occhiata: messaggio facebook api php la descrizione dice che è un closed source ma è stato reso open source in seguito, vedi il primo commento, puoi clonare da github. Adesso è un open source.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.