Envie mensagens privadas para amigos

Respostas:

74

O envio de mensagem privada por meio da API agora é possível.

Dispare este evento para enviar mensagem (a inicialização do objeto facebook deve ser feita antes).

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

    });
}

Propriedades

  • app_id
    O identificador do seu aplicativo. Obrigatório, mas especificado automaticamente pela maioria dos SDKs.

  • redirect_uri
    O URL para o qual redirecionar depois que o usuário clicar nos botões Enviar ou Cancelar na caixa de diálogo. Obrigatório, mas especificado automaticamente pela maioria dos SDKs.

  • display
    O modo de exibição no qual renderizar o diálogo. Isso é especificado automaticamente pela maioria dos SDKs.

  • para
    Um ID de usuário ou nome de usuário para o qual enviar a mensagem. Assim que a caixa de diálogo for exibida, o usuário pode especificar usuários adicionais, grupos do Facebook e endereços de e-mail para os quais enviar a mensagem. Enviar conteúdo para um grupo do Facebook irá publicá-lo no mural do grupo.

  • link
    (obrigatório) O link a ser enviado na mensagem.

  • imagem
    Por padrão, uma foto será tirada do link especificado. O URL de uma imagem a ser incluída na mensagem. A imagem será mostrada ao lado do link.

  • nome Por padrão, um título será obtido do link especificado. O nome do link, ou seja, o texto a ser exibido no qual o usuário irá clicar.

  • descrição
    Por padrão, uma descrição será obtida do link especificado. Texto descritivo a ser mostrado abaixo do link.

Veja mais aqui

@VishwaKumar:

Para enviar mensagens com texto personalizado, você deve adicionar o parâmetro 'mensagem' a FB.ui, mas acho que esse recurso está obsoleto. Você não pode mais pré-preencher a mensagem. Embora tente uma vez.

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

Veja este link: http://fbdevwiki.com/wiki/FB.ui

Somnath Muluk
fonte
3
Esta solução já existe há algum tempo. Isso não resolve completamente o problema, pois você precisa usar o pop-up do Facebook e só pode preencher uma única pessoa (neste ponto, rastreie o bug aqui ). Uma solução completa permite que você use a API padrão para enviar uma mensagem como quiser, embora pareça que o Facebook pode ter eliminado isso para sempre.
Scott
2
@Somnath, obrigado por postar a solução! Você sabe se existe uma maneira de ignorar a janela de gravação de mensagem e apenas enviar a mensagem diretamente?
CyberJunkie
2
@CyberJunkie: Acho que o Facebook não oferece essa funcionalidade de desvio. O usuário deve clicar no botão enviar mensagem. Caso contrário, sua caixa de entrada estará cheia de anúncios.
Somnath Muluk de
@Somnath: Tentei sua solução e funciona, mas existe uma maneira de preencher a mensagem no pop-up com mensagens personalizadas?
VishwaKumar de
@VishwaKumar: Você quer dizer que a caixa de mensagem deve ser preenchida com uma mensagem personalizada quando for aberta?
Somnath Muluk de
9

Não, isso não é possível. Para enviar mensagens de qualquer tipo a um usuário do Facebook, você precisa da permissão desse usuário para fazer isso.

Se alguém se conectar ao seu site com o Facebook Connect, estará concordando explicitamente em compartilhar os dados do Facebook com o seu site, e você poderá enviar uma mensagem para essa pessoa pelos canais normais. Você também poderá obter a lista de amigos deles. No entanto, você não pode enviar mensagens aos amigos.

zumbat
fonte
Meu Google-fu está falhando comigo. Tem links sobre como fazer isso?
Randell
9

Isso não é possível agora, mas existe uma solução alternativa. Você pode interagir com o usuário no domínio público e pedir-lhe para enviar mensagens privadas, mas não pode enviar mensagens privadas de volta, apenas as públicas. Claro, tudo isso depende se o usuário lhe concede as permissões corretas.

Se você deu permissão para acessar os amigos de uma pessoa, você pode teoricamente postar no mural desse usuário com referências a cada um dos amigos, pedindo-lhes para interagir publicamente com você e, em seguida, potencialmente enviar mensagens privadas.

Obtenha amigos

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

Postagem em domínio público

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

Receba mensagens enviadas para esse usuário (se tiver permissão)

http://developers.facebook.com/docs/reference/api/message/
Grilo Falante
fonte
: Agora podemos enviar mensagem privada agora. Eu dei uma resposta.
Somnath Muluk
8

Você pode usar a API de bate-papo do Facebook para enviar mensagens privadas, aqui está um exemplo em 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
Dalibor Nasevic
fonte
a postagem do blog sobre isso - dalibornasevic.com/posts/…
Dmitry Khryukin
você tem o código semelhante em php para enviar mensagem privada?
Snehal S
3
isto está obsoleto desde a v2.0 após 1 de maio de 2015
Daniel Cukier
7

Uma solução alternativa, embora não seja ótima, é usar o novo endereço de e-mail @ facebook.com. Existem algumas desvantagens para isso:

1) Nem todos (até esta postagem) têm o aplicativo de novas mensagens habilitado em suas contas.

2) Nem todos terão configurado seu e-mail @ facebook.com no aplicativo de mensagens.

3) Nem todo mundo vai escolher seu nome de usuário (se eles tiverem um nome de usuário do Facebook) como seu endereço de e-mail.

Scott
fonte
6

Você não pode. A API do Facebook tem read_mailbox, mas nenhuma permissão estendida write_mailbox. Estou supondo que isso é feito para evitar que aplicativos com spam inundem as caixas de entrada de amigos.

Anurag
fonte
2

Para aplicativos móveis, fiz uma solução injetando javascript na visualização do diálogo. Há uma visualização da web oculta no meu aplicativo ios. Isso carrega a api de diálogo de envio de mensagem fb .. então injeto algum javascript para definir os campos "para" e "mensagem" e envio o formulário .. Para que o usuário final não precise fazer nada. Mensagem enviada para a caixa de entrada do Facebook silenciosamente ...

Apueee
fonte
você pode explicar mais sobre isso?
Totty.js de
@Totty, você pode mostrar sua realização? Eu preciso muito disso para meu aplicativo iOS.
Alex
0

Não há nenhuma API gráfica para isso, você precisa usar a API de chat do Facebook xmpp para enviar a mensagem, a boa notícia é: eu fiz uma classe de php que é muito fácil de usar, chame uma função e a mensagem será enviada, é código aberto, confira: facebook message api php a descrição diz que é um código fechado, mas foi feito open source depois, veja o primeiro comentário, você pode clonar do github. É um código aberto agora.

Nishchal Gautam
fonte