多くの検索の結果、fb-messenger://user-thread/ID
を使用してメッセンジャーにディープリンクし、渡されたFB IDで既存のスレッドを開くか、存在しない場合は新しいスレッドを開始できます。
メッセンジャーにポップアップしてスレッドを開きますが、スレッドにはFacebook User
および実際には送信しません。下の画像を参照してください。ヘッダーの[Facebookユーザー]をクリックすると、正しいユーザーの画像と名前を含む詳細ビューに移動します。
これを正しく機能させるにはどうすればよいですか?
...文書化された方法はありません... [メッセンジャー]。
そのため、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/ID
はfb-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
です
これを完全に復活させて申し訳ありませんが、Facebook Messengerにはユニバーサルリンクが組み込まれており、Messengerアプリをすばやく開くことができます。
m.me/$USERNAME
例: http://m.me/zuck は、メッセージZuckerbergに普遍的にリンクします。
私はいくつかのパラメーターで遊んでみましたが、メッセージを事前入力するようには見えませんでした。
このすべてが変更されました。 Facebookは、ブランドまたはユーザーのメッセンジャープロファイルに接続するための短いリンクをリリースしました。直接リンクする方法は http://m.me/PROFILE またはPAGE_NAME
ボットを構築している場合は、紹介パラメーターを渡すこともできます。私はこれについてたくさん書きました メッセンジャーの会話にリンクする 。
使用する 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": "..."
}
}
]
}
]
}
コードに直接ジャンプする場合は、次のとおりです。
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://m.me/%ld", USER_ID]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}