Custom URI Schemes for the Facebook Messenger Custom URI Schemes for the Facebook Messenger android android

Custom URI Schemes for the Facebook Messenger


After unsuccessfully searching for this information, I've decided to make a list of my own. Below is what I managed to gather so far, along with a few explanations:

These were taken from version 141.0.0.25.76 (October 21, 2017):

fb-messenger://accountsfb-messenger://active_nowfb-messenger://addcardfb-messenger://addmembersfb-messenger://android_date_timefb-messenger://android_storagefb-messenger://autocomposefb-messenger://autocompose_paymentfb-messenger://bots/get_started/?page_id=%s&cta_id=%sfb-messenger://businessfb-messenger://business/fb-messenger://business_extensionsfb-messenger://buy/mc?item_id={#%s}fb-messenger://callsearchfb-messenger://commerce/fb-messenger://composefb-messenger://contactmigrationfb-messenger://contactsfb-messenger://contacts/add_contactsfb-messenger://contactuploadoptinfb-messenger://direct_sharefb-messenger://drawoverotherappsfb-messenger://gamesfb-messenger://groupcomposefb-messenger://groupstabfb-messenger://groupthreadfbid/fb-messenger://groupthreadfbid/%sfb-messenger://ig_contact_importfb-messenger://installupdatefb-messenger://instant_article/?article_id=fb-messenger://instant_article/?article_id=%sfb-messenger://invitefb-messenger://join_requestfb-messenger://maifb-messenger://messagerequestsfb-messenger://messagesearchfb-messenger://montagefb-messenger://montage_composerfb-messenger://montage_mediapickerfb-messenger://montageaudiencepickerfb-messenger://montagecomposerfb-messenger://networkempathyfb-messenger://newfb-messenger://newuser/fb-messenger://newuser/signup?provider_name=%s&provider_page_fbid=%sfb-messenger://nfcfb-messenger://omni_mfb-messenger://opengrouppreviewfb-messenger://opengrouppreview?group_preview_hash=fb-messenger://optimisticfb-messenger://optimistic/%sfb-messenger://paymentsfb-messenger://payments/fb-messenger://platformfb-messenger://platform/cta/postback/?cta_id=%sfb-messenger://platform/share/?cta_id=%sfb-messenger://ride_map/{%s}fb-messenger://roomcomposefb-messenger://rtccallfb-messenger://sampleflowsfb-messenger://settingsfb-messenger://settings/datasaverfb-messenger://settings/messengeronlybackupfb-messenger://settings/montagefb-messenger://settings/notificationsfb-messenger://settings/peoplefb-messenger://settings/phoneeventsfb-messenger://settings/profilepicturefb-messenger://settings/tincanfb-messenger://share                    < Used for sharing multimedia, contains                                           several extras. See more info below.fb-messenger://smsfb-messenger://sms/fb-messenger://sms/%sfb-messenger://sms-bridgefb-messenger://sms-takeoverfb-messenger://sms-takeover/nux?context=%sfb-messenger://sms-takeover/nux?context=%s&thread_id=%sfb-messenger://sms-takeover/sms_anonymous_chat_headfb-messenger://stickerstorefb-messenger://thread/                  < Deprecatedfb-messenger://threadkeystringfb-messenger://threadsfb-messenger://threadsettingsfb-messenger://userfb-messenger://user/fb-messenger://user/%s                  < Opens chathead/conversation with user %s, where                                          %s is the numeric fb user id. Using a username                                           string here crashes the orca app.fb-messenger://user/%s?ref=%s&ref_source=%sfb-messenger://verifyphonenuxfb-messenger://voipfb-messenger://wave

These are some additions taken from version 293.0.0.13.232 (December 8th 2020):

fb-messenger://carrier_messaging/fb-messenger://carrier_messaging//%sfb-messenger://carrier_messaging_group/fb-messenger://carrier_messaging_group//%sfb-messenger://dialtone/switch_to_dialtonefb-messenger://instant_games/play?game_id=fb-messenger://m.me/fb-messenger://payments/checkout/?product_type=pages_commerce&product_id=fb-messenger://payments/paypal_close/fb-messenger://payments/settingsfb-messenger://paypal_connect_fail/fb-messenger://paypal_connect_success/fb-messenger://settings/datasettingfb-messenger-sametask://instant_games_contact_pickfb-messenger-sametask://montage_mediapickerfb-messenger-sametask://sharefb-messenger-sametask://threadsettingsfb-messenger-secure://accountsfb-messenger-secure://accounts/triggerssofb-messenger-secure://join_requestfb-messenger-secure://messagerequestsfb-messenger-secure://messagesearchfb-messenger-secure://notification_to_account_switchfb-messenger-secure://page_notification_direct_replyfb-messenger-secure://page_rtc_notification_to_account_switchfb-messenger-secure://rtccall/audio/%sfb-messenger-secure://speakeasy_invite_list

Here are some URI schemes whose purpose in this app I don't know:

  • fb:// - see possible URIs of this scheme here.
  • dialtone://
  • fbinternal://
  • fb-messenger-aol://
  • fb-messenger-assistant://
  • fb-messenger-lite://
  • fb-messenger-lite-secure://
  • fb-messenger-public://
  • fb-messenger-secure://
  • fb-work://

Investigation of fb-messenger://share (from older version of this post - may be invalid):

  • Has a StringExtra called ShareType that can be: ShareType.invite, ShareType.forward, ShareType.regular.
  • Has an optional (?) StringExtra called ShareType.invitedUser.
  • Has an optional (?) StringExtra called ShareType.invitedUserDisplayName.
  • Has an optional (?) StringExtra called ShareType.inviteEntryPoint.
  • Has an optional (?) StringExtra called ShareType.invitesSentBroadcastAction.
  • (several others)

In the case of ShareType.forward:

  • Has an Extra with the tag "attachment" OR "message".
  • Has an Extra with the tag "trigger".

###Extra fields of a share Intent (tag : type):###

  • android.intent.extra.TEXT : String
  • attachment : Parcelable
  • message : Parcelable
  • page_name : String
  • page_post_id : String
  • page_target : Long
  • send_as_message_entry_point : String
  • share_attachment_url : String
  • share_caption : String
  • share_description : String
  • share_fbid : String
  • share_link_url : String
  • share_media_url : String
  • share_return_to_fb4a : Boolean
  • share_robotext : String
  • share_story_url : String
  • share_title : String
  • ShareType : String
  • target_recipients : StringArray
  • title : String
  • trigger : String

The required functionality may be achieved by using fb-messenger://user/{user-id} instead of fb-messenger://user-thread/{user-id}.

Note that {user-id} is the user's global numeric ID (e.g. for Zuck it's 4), which can be obtained (as of Nov. 2015) by parsing the html document that corresponds to the person's user name (e.g. for Zuck it's https://www.facebook.com/zuck) and extracting the "entity_id" that is found inside.

According to my latest test, app-scoped user IDs, which are usually the IDs available to developers, do not work for this!

Below is a python3 script that extracts the global ID for a known username (credit: Paul Schreiber):

#!/usr/bin/pythonimport requestsimport reurl = 'https://www.facebook.com/zuck'idre = re.compile('"entity_id":"([0-9]+)"')page = requests.get(url)print(idre.findall(page.content.decode()))

Alternatively, this site can be used to achieve the same thing.

Please also note that this method is not officially supported and might even get your app banned by FB.


With current version Facebook on android automatically ask user to open the app or open in chrome when you use their domain www.messenger.comIt's better to just redirect user to this url and let facebook handle it

https://www.messenger.com/t/{username-or-page-name-here}

Intent intent;intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.messenger.com/t/{username-or-page-name-here}"));startActivity(intent);


This simply share a link

<a href="fb-messenger://share?link=encodedLink"></a>