web-dev-qa-db-ja.com

友達にプライベートメッセージを送信する

Facebook経由でユーザーの情報を取得し、プライベートメッセージをすべての友達に送信する必要があります。出来ますか?

88
yspro

APIを介したプライベートメッセージの送信が可能になりました。

メッセージを送信するためにこのイベントを起動します(facebookオブジェクトの初期化は前に行う必要があります)。

to:user facebookのID

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 '

    });
}

物性

  • app_id
    アプリケーションの識別子。必須ですが、ほとんどのSDKで自動的に指定されます。

  • redirect_uri
    ユーザーがダイアログの[送信]または[キャンセル]ボタンをクリックした後にリダイレクトするURL。必須ですが、ほとんどのSDKで自動的に指定されます。

  • 表示
    ダイアログをレンダリングする表示モード。これは、ほとんどのSDKによって自動的に指定されます。


  • メッセージの送信先のユーザーIDまたはユーザー名。ダイアログが表示されたら、ユーザーは追加のユーザー、Facebookグループ、およびメッセージの送信先の電子メールアドレスを指定できます。 Facebookグループにコンテンツを送信すると、グループのウォールに投稿されます。

  • リンク
    (必須)メッセージで送信するリンク。

  • 画像
    デフォルトでは、指定されたリンクから写真が撮影されます。メッセージに含める画像のURL。写真はリンクの横に表示されます。

  • nameデフォルトでは、タイトルは指定されたリンクから取得されます。リンクの名前、つまりユーザーがクリックすることを表示するテキスト。

  • 説明
    デフォルトでは、指定されたリンクから説明が取得されます。リンクの下に表示する説明テキスト。

もっと見る こちら

@VishwaKumar:

カスタムテキストを含むメッセージを送信するには、FB.uiに 'message'パラメータを追加する必要がありますが、この機能は廃止されると思います。メッセージを事前に入力することはできません。一度試してみても。

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

このリンクを参照してください: http://fbdevwiki.com/wiki/FB.ui

74
Somnath Muluk

いいえ、これは不可能です。 Facebookユーザーにあらゆる種類のメッセージを送信するには、そのユーザーの許可が必要です。

誰かがFacebook Connectであなたのサイトにログインした場合、彼らはあなたのFacebookデータをあなたのサイトと共有することに明示的に同意し、そしてあなたは通常のチャネルを通してその人メッセージを送ることができます。友達リストを取得することもできます。ただし、友達にメッセージを送信することはできません。

9
zombat

これは現在不可能ですが、回避策があります。パブリックレルムでユーザーとやり取りしてプライベートメッセージを送信するように依頼することはできますが、プライベートメッセージを返信することはできません。パブリックメッセージのみを返信することができます。もちろん、これはすべて、ユーザーが正しい許可を与えているかどうかに依存します。

人の友達にアクセスする許可を与えた場合、理論的には、その友達にそれぞれの友達への参照を使用してそのユーザーウォールに投稿し、あなたと公的にやり取りしてからあなたに個人的にメッセージを送るよう依頼することができます。

友達をゲット

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

パブリックドメインに投稿する

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

そのユーザーに送信されたメッセージを取得する(許可が与えられている場合)

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

Facebook Chat APIを使用してプライベートメッセージを送信できます。これはxmpp4r_facebook gemを使用したRubyの例です。

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
8
Dalibor Nasevic

すばらしい回避策ではありませんが、1つの回避策は新しい@ facebook.comのメールアドレスを使用することです。これにはいくつかの欠点があります。

1)すべての(この投稿の時点で)アカウントで新しいメッセージアプリケーションが有効になっているわけではありません。

2)すべての人がメッセージアプリで@ facebook.comのメールを設定できるわけではありません。

3)誰もが自分のユーザー名(Facebookユーザー名さえ持っている場合)をメールアドレスとして選択するわけではありません。

7
Scott

できません。 Facebook APIにはread_mailboxがありますが、write_mailbox拡張アクセス許可はありません。これは、スパムアプリケーションが友人の受信ボックスをあふれさせるのを防ぐために行われていると思います。

6
Anurag

モバイルアプリケーションの場合、ダイアログビューにJavaScriptを挿入することで解決しました。 iOSアプリには非表示のWebビューがあります。それはfbメッセージ送信ダイアログapiをロードします..その後、「to」および「message」フィールドを設定してフォームを送信するためにJavaScriptを挿入します。したがって、エンドユーザーは何もする必要がありません。メッセージをFacebookの受信トレイにサイレントで送信しました...

2
apueee

これにはグラフAPIはありません。メッセージを送信するにはfacebook xmpp chat apiを使用する必要があります。良いニュースは次のとおりです。使いやすいphpクラスを作成し、関数を呼び出してメッセージを送信します。オープンソース、チェックアウト: facebook message api php 説明にはクローズドソースと書かれていますが、後でオープンソースになりました。最初のコメントを参照して、githubからクローンを作成できます。現在はオープンソースです。

0
Nishchal Gautam

このスレッドは、Facebookの友人グループにプライベートメッセージを送信することはできないと言っていますが、私はこれを見つけました https://developers.facebook.com/docs/sharing/reference/send-dialog

0
Josh Pittman