15

ユーザーがFacebookの友達とメッセージを共有できるアプリケーションを開発しています。私はAndroid用のFacebookAPIを使用しています。

ユーザーを認証でき、Facebookユーザーとして友達リストを取得したり、ウォールにメッセージを投稿したりできますが、友達にプライベートメッセージを送信したいので、解決策がありませんでした。どんな体も私を助けることができます、どうすればこれを達成できますか?

4

4 に答える 4

7

グラフAPIを使用して、ユーザーに代わってプライベートメッセージを送信することはできません。

ただし、Androidで試したことはありませんが、送信ダイアログを使用できるはずですが、次のようになります。

Bundle params = new Bundle();
params.putString("to", "USER_ID");
params.putString("name", "TITLE HERE");
params.putString("link", "A URL"); // this link param is required

facebook.dialog(context, "send", params, new DialogListener() {
    @Override
    public void onComplete(Bundle values) {
       ....
    }

    @Override
    public void onFacebookError(FacebookError error) {}

    @Override
    public void onError(DialogError e) {}

    @Override
    public void onCancel() {}
});

使用できるもう1つのアプローチは、ユーザーに代わってメッセージを送信できるチャットAPIxmpp_loginです。これには、アクセス許可が必要であり、xmppクライアントを実装する必要があります。


編集

このダイアログはAndroidではまだサポートされていないため、次の3つのオプションがあります。

  1. FacebookがAndroid用のダイアログを実装するのを待ちます。
  2. モバイルデバイスのブラウザ(そのURLはドキュメントにあります)でダイアログを開いてみてください。
  3. xmpp_loginxmppクライアント(つまり、asmack )を要求して追加すると、独自の「メッセージの送信」ダイアログを実装できます。
于 2012-05-26T10:58:10.283 に答える
0

最新のAndroidSDK機能が(プライベート)メッセージダイアログ
https://developers.facebook.com/docs/android/message-dialog/になりました

于 2014-05-02T07:45:30.130 に答える
0

MessengerUtilsを使用して、添付ファイル付きのメッセージを送信できます。

ここに画像の説明を入力してください

次のMIMEタイプで添付ファイルを送信できます。

ここに画像の説明を入力してください

画像を送信するためのサンプルコードは次のとおりです

String mimeType = "image/jpeg";

// contentUri points to the content being shared to Messenger
ShareToMessengerParams shareToMessengerParams =
        ShareToMessengerParams.newBuilder(contentUri, mimeType)
                .build();

// Sharing from an Activity
MessengerUtils.shareToMessenger(
       this,
       REQUEST_CODE_SHARE_TO_MESSENGER,
       shareToMessengerParams);

ここに画像の説明を入力してください

その他のドキュメントはhttps://developers.facebook.com/docs/messenger/androidにあります

于 2016-09-06T16:28:18.327 に答える
0

以下のコードを使用してFacebookのプライベートメッセージを送信することが可能です。

if (isPackageExisted("com.facebook.orca")) {
        Uri uri = Uri.parse("fb-messenger://user/");
        uri = ContentUris.withAppendedId(uri, Long.parseLong("Enter user id here"));
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);
    } else {
        Toast.makeText(this, "Please install facebook messenger", Toast.LENGTH_LONG).show();
    }
}

Facebookメッセンジャーがインストールされているかどうかを確認してください

 public boolean isPackageExisted(String targetPackage) {
    PackageManager pm = getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(targetPackage, PackageManager.GET_META_DATA);
    } catch (PackageManager.NameNotFoundException e) {
        return false;
    }
    return true;
}
于 2017-02-27T06:16:15.430 に答える