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://accounts
fb-messenger://active_now
fb-messenger://addcard
fb-messenger://addmembers
fb-messenger://android_date_time
fb-messenger://android_storage
fb-messenger://autocompose
fb-messenger://autocompose_payment
fb-messenger://bots/get_started/?page_id=%s&cta_id=%s
fb-messenger://business
fb-messenger://business/
fb-messenger://business_extensions
fb-messenger://buy/mc?item_id={#%s}
fb-messenger://callsearch
fb-messenger://commerce/
fb-messenger://compose
fb-messenger://contactmigration
fb-messenger://contacts
fb-messenger://contacts/add_contacts
fb-messenger://contactuploadoptin
fb-messenger://direct_share
fb-messenger://drawoverotherapps
fb-messenger://games
fb-messenger://groupcompose
fb-messenger://groupstab
fb-messenger://groupthreadfbid/
fb-messenger://groupthreadfbid/%s
fb-messenger://ig_contact_import
fb-messenger://installupdate
fb-messenger://instant_article/?article_id=
fb-messenger://instant_article/?article_id=%s
fb-messenger://invite
fb-messenger://join_request
fb-messenger://mai
fb-messenger://messagerequests
fb-messenger://messagesearch
fb-messenger://montage
fb-messenger://montage_composer
fb-messenger://montage_mediapicker
fb-messenger://montageaudiencepicker
fb-messenger://montagecomposer
fb-messenger://networkempathy
fb-messenger://new
fb-messenger://newuser/
fb-messenger://newuser/signup?provider_name=%s&provider_page_fbid=%s
fb-messenger://nfc
fb-messenger://omni_m
fb-messenger://opengrouppreview
fb-messenger://opengrouppreview?group_preview_hash=
fb-messenger://optimistic
fb-messenger://optimistic/%s
fb-messenger://payments
fb-messenger://payments/
fb-messenger://platform
fb-messenger://platform/cta/postback/?cta_id=%s
fb-messenger://platform/share/?cta_id=%s
fb-messenger://ride_map/{%s}
fb-messenger://roomcompose
fb-messenger://rtccall
fb-messenger://sampleflows
fb-messenger://settings
fb-messenger://settings/datasaver
fb-messenger://settings/messengeronlybackup
fb-messenger://settings/montage
fb-messenger://settings/notifications
fb-messenger://settings/people
fb-messenger://settings/phoneevents
fb-messenger://settings/profilepicture
fb-messenger://settings/tincan
fb-messenger://share < Used for sharing multimedia, contains
several extras. See more info below.
fb-messenger://sms
fb-messenger://sms/
fb-messenger://sms/%s
fb-messenger://sms-bridge
fb-messenger://sms-takeover
fb-messenger://sms-takeover/nux?context=%s
fb-messenger://sms-takeover/nux?context=%s&thread_id=%s
fb-messenger://sms-takeover/sms_anonymous_chat_head
fb-messenger://stickerstore
fb-messenger://thread/ < Deprecated
fb-messenger://threadkeystring
fb-messenger://threads
fb-messenger://threadsettings
fb-messenger://user
fb-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=%s
fb-messenger://verifyphonenux
fb-messenger://voip
fb-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//%s
fb-messenger://carrier_messaging_group/
fb-messenger://carrier_messaging_group//%s
fb-messenger://dialtone/switch_to_dialtone
fb-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/settings
fb-messenger://paypal_connect_fail/
fb-messenger://paypal_connect_success/
fb-messenger://settings/datasetting
fb-messenger-sametask://instant_games_contact_pick
fb-messenger-sametask://montage_mediapicker
fb-messenger-sametask://share
fb-messenger-sametask://threadsettings
fb-messenger-secure://accounts
fb-messenger-secure://accounts/triggersso
fb-messenger-secure://join_request
fb-messenger-secure://messagerequests
fb-messenger-secure://messagesearch
fb-messenger-secure://notification_to_account_switch
fb-messenger-secure://page_notification_direct_reply
fb-messenger-secure://page_rtc_notification_to_account_switch
fb-messenger-secure://rtccall/audio/%s
fb-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
calledShareType
that can be:ShareType.invite
,ShareType.forward
,ShareType.regular
. - Has an optional (?)
StringExtra
calledShareType.invitedUser
. - Has an optional (?)
StringExtra
calledShareType.invitedUserDisplayName
. - Has an optional (?)
StringExtra
calledShareType.inviteEntryPoint
. - Has an optional (?)
StringExtra
calledShareType.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
: Stringattachment
: Parcelablemessage
: Parcelablepage_name
: Stringpage_post_id
: Stringpage_target
: Longsend_as_message_entry_point
: Stringshare_attachment_url
: Stringshare_caption
: Stringshare_description
: Stringshare_fbid
: Stringshare_link_url
: Stringshare_media_url
: Stringshare_return_to_fb4a
: Booleanshare_robotext
: Stringshare_story_url
: Stringshare_title
: StringShareType
: Stringtarget_recipients
: StringArraytitle
: Stringtrigger
: 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/python
import requests
import re
url="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.