首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook Messenger的自定义URI方案

Facebook Messenger的自定义URI方案
EN

Stack Overflow用户
提问于 2014-08-24 00:06:35
回答 5查看 34.5K关注 0票数 27

考虑到最近Facebook的"鼓励“迁移到一个单独的信使应用程序,并且作为{非常信息丰富的!} 对Facebook应用程序支持的URL/URI方案问题的回答的后续,我一直在想关于Facebook信使应用自定义协议的信息是否是可用的。

我正在寻找的功能是能够点击一个按钮,可以打开一个FB信使聊天窗口的用户,其数字Facebook ID是已知的。如果设备上没有安装Facebook应用程序(卡塔纳),也需要这样做(即只有信使虎鲸)。

我找到了一个所需的示例 ( 深联fb-messenger://user-thread/{user-id}),但这似乎行不通。我意识到FB每隔一段时间就会有修改URI的倾向,因为通常不应该向公众开放这些URI(据我所知)。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-24 00:06:35

在搜索这些信息失败后,我决定列出我自己的列表。下面是我到目前为止收集到的信息,以及一些解释:

这些资料摘自141.0.0.25.76版(2017年10月21日)

代码语言:javascript
复制
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

以下是293.0.0.13.232版本(2020年12月8日)中的一些新增内容:

代码语言:javascript
复制
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

下面是一些URI方案,它们在这个应用程序中的用途我不知道:

  • fb:// --参见此方案的可能URI 这里
  • dialtone://
  • fbinternal://
  • fb-messenger-aol://
  • fb-messenger-assistant://
  • fb-messenger-lite://
  • fb-messenger-lite-secure://
  • fb-messenger-public://
  • fb-messenger-secure://
  • fb-work://

fb-messenger://share的调查(来自此后的旧版本可能是无效的):

  • 有一个名为StringExtraShareType,可以是:ShareType.inviteShareType.forwardShareType.regular
  • 有一个可选的(?) StringExtra名为ShareType.invitedUser
  • 有一个可选的(?) StringExtra名为ShareType.invitedUserDisplayName
  • 有一个可选的(?) StringExtra名为ShareType.inviteEntryPoint
  • 有一个可选的(?) StringExtra名为ShareType.invitesSentBroadcastAction
  • (其他几个)

ShareType.forward的情况下

  • 具有标记为Extra"attachment" "message"
  • 有一个带有标记Extra"trigger"

共享的###Extra字段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:布尔型
  • share_robotext:String
  • share_story_url:String
  • share_title:String
  • ShareType:String
  • target_recipients:StringArray
  • title:String
  • trigger:String

所需的功能可以通过使用fb-messenger://user/{user-id}而不是fb-messenger://user-thread/{user-id}来实现。

Note表示,{user-id}是用户的全局数字ID (例如4),它可以通过解析对应于用户用户名的html文档(例如https://www.facebook.com/zuck)并提取在其中找到的"entity_id"来获得(截至2015年11月)。

根据我最近的测试,通常是开发人员可用的ID的应用范围内的用户ID不适用于此!

下面是一个python3脚本,它提取已知用户名的全局ID (信用:保罗·施赖伯):

代码语言:javascript
复制
#!/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()))

或者,可以使用本站来实现相同的目标。

还请注意,此方法是未获官方支持,甚至可能是让你的应用程序被FB禁止

票数 73
EN

Stack Overflow用户

发布于 2018-05-28 02:34:09

对于安卓上的当前版本,Facebook会自动要求用户打开应用程序,或者在使用www.messenger.com域时用chrome打开,最好是将用户重定向到这个url,让facebook处理它。

https://www.messenger.com/t/{用户名或页名-此处}

代码语言:javascript
复制
Intent intent;
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.messenger.com/t/{username-or-page-name-here}"));
startActivity(intent);
票数 7
EN

Stack Overflow用户

发布于 2016-09-21 15:04:14

这只是共享一个链接。

代码语言:javascript
复制
<a href="fb-messenger://share?link=encodedLink"></a>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25467445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档