Angesichts der jüngsten " ermutigung " von Facebook, um zu einer separaten Messenger-App zu wechseln, und als Folgemaßnahme zu {sehr informativ!} Antwort auf die Frage zu URL/URI-Schemata, die von der Facebook-App unterstützt werden , Ich habe mich gefragt, ob Informationen zu der Facebook Messenger App benutzerdefiniertes Protokoll von fb-messenger://
verfügbar sind.
Die Funktionalität, nach der ich gesucht habe, war die Möglichkeit, auf eine Schaltfläche zu klicken, mit der ein FB-Messenger-Chat-Fenster mit dem Benutzer geöffnet werden kann, dessen numerische Facebook-ID bekannt ist. Dies musste auch funktionieren, wenn die Facebook-App ( katana ) nicht auf dem Gerät installiert ist (d. H. Nur der Messenger, Orca ).
Ich habe ein Beispiel des gewünschten Deep Linking (fb-messenger://user-thread/{user-id}
) gefunden, aber das schien nicht zu funktionieren. Ich habe erkannt, dass FB die URIs gelegentlich überarbeitet, da diese normalerweise der Öffentlichkeit nicht zugänglich sind (soweit ich das verstehe).
Nach erfolgloser Suche nach diesen Informationen habe ich mich entschlossen, eine eigene Liste zu erstellen. Nachfolgend habe ich es zusammen mit ein paar Erklärungen zusammengetragen:
Dies wird für Version 141.0.0.25.76 _ (21. Oktober 2017) aktualisiert.
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
Hier sind einige URI-Schemata, deren Zweck in dieser App nicht bekannt ist:
fb://
- siehe mögliche URIs dieses Schemas hier .fb-work://
fbinternal://
fb-messenger-secure://
dialtone://
Untersuchung von fb-messenger://share
(aus älteren Versionen dieses Beitrags - ist möglicherweise ungültig):
StringExtra
namens ShareType
, die Folgendes sein kann: ShareType.invite
, ShareType.forward
, ShareType.regular
.StringExtra
den Namen ShareType.invitedUser
.StringExtra
den Namen ShareType.invitedUserDisplayName
.StringExtra
den Namen ShareType.inviteEntryPoint
.StringExtra
den Namen ShareType.invitesSentBroadcastAction
.Im Falle von ShareType.forward
:
Extra
mit dem Tag "attachment"
ODER"message"
.Extra
mit dem Tag "trigger"
.Extra
-Felder einer Freigabe Intent
(Tag: type):Android.intent.extra.TEXT
: String attachment
: Parcelable message
: Parcelablepage_name
: Stringpage_post_id
: Stringpage_target
: langsend_as_message_entry_point
: Stringshare_attachment_url
: Stringshare_caption
: Stringshare_description
: Stringshare_fbid
: Stringshare_link_url
: Stringshare_media_url
: Stringshare_return_to_fb4a
: Boolean share_robotext
: Stringshare_story_url
: Stringshare_title
: StringShareType
: Stringtarget_recipients
: StringArraytitle
: Stringtrigger
: StringDie erforderliche Funktionalität kann durch Verwendung von fb-messenger://user/{user-id}
anstelle von fb-messenger://user-thread/{user-id}
erreicht werden.
Beachten Sie, dass {user-id}
die globale numerische ID des Benutzers ist (z. B. für Zuck ist es 4
), die ab November 2015 durch Analysieren des HTML-Dokuments abgerufen werden kann, das der Person entspricht Benutzername (zB für Zuck ist es https://www.facebook.com/zuck
) und Extrahieren des darin befindlichen "entity_id"
.
Laut meinem letzten Test funktionieren Anwendungsbereichs-IDs , die normalerweise für Entwickler verfügbare IDs sind, dafür nicht!
Nachfolgend finden Sie ein Python3-Skript, das die globale ID für einen bekannten Benutzernamen extrahiert (Kredit: 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()))
Alternativ kann diese Seite verwendet werden, um dasselbe zu erreichen.
Bitte beachten Sie auch, dass diese Methode nicht offiziell unterstützt wird und möglicherweise sogar Ihre App von FB gesperrt wird .
Bei der aktuellen Version von Facebook auf Android wird der Benutzer automatisch aufgefordert, die App zu öffnen oder in Chrome zu öffnen, wenn Sie seine Domäne www.messenger.com verwenden
https://www.messenger.com/t/ {Benutzername-oder-Seitenname-hier}
Intent intent;
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.messenger.com/t/{username-or-page-name-here}"));
startActivity(intent);
Dies teilen Sie einfach einen Link
<a href="fb-messenger://share?link=encodedLink"></a>
Verwenden von Chrome Intents für Android: Der folgende Code öffnet den FB Messenger, sofern installiert. Sonst werden Weiterleitungen zur Fallback-URL umgeleitet.
<a href="intent://user/<yourid>/#Intent;scheme=fb-messenger;package=com.facebook.orca;S.browser_fallback_url=http://yourfllbackweburl;end"> Open Messenger</a>