Preciso obter informações do usuário via Facebook Connect e enviar uma mensagem privada a todos os seus amigos. É possível?
Preciso obter informações do usuário via Facebook Connect e enviar uma mensagem privada a todos os seus amigos. É possível?
Respostas:
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
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.
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/
Você pode usar a API de bate-papo do Facebook para enviar mensagens privadas, aqui está um exemplo em Ruby usando 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
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.
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 ...
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.
Este tópico diz que você não pode enviar mensagens privadas para um grupo de amigos no Facebook, mas eu encontrei este https://developers.facebook.com/docs/sharing/reference/send-dialog