web-dev-qa-db-ja.com

Facebook Messengerへのディープリンク

多くの検索の結果、fb-messenger://user-thread/IDを使用してメッセンジャーにディープリンクし、渡されたFB IDで既存のスレッドを開くか、存在しない場合は新しいスレッドを開始できます。

メッセンジャーにポップアップしてスレッドを開きますが、スレッドにはFacebook Userおよび実際には送信しません。下の画像を参照してください。ヘッダーの[Facebookユーザー]をクリックすると、正しいユーザーの画像と名前を含む詳細ビューに移動します。

これを正しく機能させるにはどうすればよいですか?

17
Chris

WizKid (FB従業員)が言った ここ

...文書化された方法はありません... [メッセンジャー]。

そのため、fb-messenger://user-thread/IDは廃止されたようです。そうは言っても、私はFacebook Android APKを逆コンパイルして、行を見つけました:

return Uri.parse((new StringBuilder("fb-messenger://user/")).append(Uri.encode(s)).toString());

だから私が見ることができるものから、fb-messenger://user-thread/IDfb-messenger://user/IDに置き換えられたようです

Thatsという行もあります。

return Uri.parse((new StringBuilder("fb-messenger://thread/")).append(Uri.encode(s)).toString());

したがって、fb-messenger://thread/IDも有効な場合があります。 IDはユーザーIDまたはスレッドIDである可能性があります。詳細を調べるのに十分な深さではありませんでした。

編集:現在のFacebook URLはfb-messenger-public://user-thread/IDです

14
Parker

これを完全に復活させて申し訳ありませんが、Facebook Messengerにはユニバーサルリンクが組み込まれており、Messengerアプリをすばやく開くことができます。

m.me/$USERNAME

例: http://m.me/zuck は、メッセージZuckerbergに普遍的にリンクします。

私はいくつかのパラメーターで遊んでみましたが、メッセージを事前入力するようには見えませんでした。

23
phil-monroe

このすべてが変更されました。 Facebookは、ブランドまたはユーザーのメッセンジャープロファイルに接続するための短いリンクをリリースしました。直接リンクする方法は http://m.me/PROFILE またはPAGE_NAME

ボットを構築している場合は、紹介パラメーターを渡すこともできます。私はこれについてたくさん書きました メッセンジャーの会話にリンクする

2
user1508000

使用する fb-messenger-public://user-thread/<ID> FacebookメッセンジャーのWebフックペイロードの受信者IDからIDを取得しました。例えば.

{
    "object": "page",
    "entry": [
        {
            "id": "1163189980393936",
            "time": 1500325170682,
            "messaging": [
                {
                    "sender": {
                        "id": ""
                    },
                    "recipient": {
                        "id": "ID"
                    },
                    "timestamp": 1500325170640,
                    "message": {
                        "mid": "mid.$cAAQh6kd9svBjg56V0FdUllNamImF",
                        "seq": 2888,
                        "text": "..."
                    }
                }
            ]
        }
    ]
}
1
Curtis Allen

コードに直接ジャンプする場合は、次のとおりです。

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://m.me/%ld", USER_ID]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}
0
chengsam