Open Facebook Messenger in Android

2019-03-08 02:41发布

问题:

I want to open facebook messenger by code. How I can get the facebook ID?? I have the facebook SDK on my app and I saved for every user the facebookId but is not the same as I need

Here is my method:

// Make sure the Facebook Messenger for Android client is installed
        boolean isFBInstalled = isAppInstalled("com.facebook.orca");

        if (!isFBInstalled) {
            Toast.makeText(this,"Facebook messenger isn't installed. Please download the app first.", Toast.LENGTH_SHORT)
                    .show();
        }

        else {
            // Create the Intent
            Uri uri = Uri.parse("fb-messenger://user/");
            uri = ContentUris.withAppendedId(uri,Long.valueOf(facebookIDhere);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);

            try {
                startActivity(intent);
            }

            catch(Exception e) {
                Toast.makeText(this,"Oups!Can't open Facebook messenger right now. Please try again later.", Toast.LENGTH_SHORT)
                        .show();
            }
        }

        return;

回答1:

You can simply open it like this without an FB ID

Intent intent= new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "Hello");
intent.setType("text/plain");
intent.setPackage("com.facebook.orca");

try
{
    startActivity(intent);
}
catch (ActivityNotFoundException ex) 
{
    Toast.makeText(this,
           "Oups!Can't open Facebook messenger right now. Please try again later.", 
            Toast.LENGTH_SHORT).show();
}


回答2:

First, check the app is existed in device or not and write the following lines to open.

Intent intent = activity.getPackageManager().getLaunchIntentForPackage("com.facebook.orca");
activity.startActivity(intent);


回答3:

Go to someone's facebook profile. Right click on the profile picture and copy the link address. Paste it on a text editor and you will see the "referrer_profile_id" parameter at the end of the URL. It is the facebook ID of that user.

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://messaging/" + FbUserID));
startActivity(i);