web-dev-qa-db-ja.com

Web共有ダイアログの代わりにAndroid / iOS /モバイルでネイティブFacebookアプリを開く「Facebookで共有」リンクを生成することは可能ですか?

共有ダイアログを開くWebサイトでFacebookリンクで共有を使用することは可能ですか?ネイティブアプリで

現在の動作:

現在、Facebook共有リンクをクリックすると、Webベースの共有ダイアログが開きます。これは、ほとんどのモバイルFacebookユーザーがネイティブアプリを使用しているため、ブラウザーにログインしていないために問題があります。その結果、Web共有ダイアログはユーザーの資格情報を入力するように求めます。これにより、結局は共有しないようになる可能性があります。

理想的な動作:

Facebookリンクの共有をクリックすると、ネイティブFacebookアプリの共有ダイアログが表示され、ユーザーは既にサインインしています。

助けてくれてありがとう!

46
Walker

現在のところ、これを達成する公式の方法はありません。ただし、カスタムURLスキームを使用してWeb共有ダイアログを転送し、FacebookによってCouldを実装できました。したがって、 正式に文書化された方法 を使用してこのダイアログを開くと、この機能が利用可能になり次第変更することなく取得できます。

公式のWeb共有ダイアログを前提条件なしで使用する最も簡単な方法は、次のURLにリンクすることです。

https://www.facebook.com/dialog/share?
    app_id=145634995501895
    &display=popup
    &href=URL_TO_SHARE
    &redirect_uri=RETURN_URL

uRL_TO_SHAREとRETURN_URLを適切なURLエンコード値に置き換えます。または、Facebook JS-SDKを含め、従来の共有ボタンまたは Webでの共有 で説明されている他の方法を使用します。

完全を期すために:iOSおよびAndroidのネイティブアプリでは、ユーザーがFacebookアプリをインストールしている場合、Facebookアプリに直接リンクすることができます。 iOS からの共有を参照してください。または Android 。これは常に当てはまるわけではないので、それぞれのプラットフォーム固有のFacebook SDKを使用してチェックし、Webベースのダイアログにフォールバックする必要もあります。

補足:Facebookアプリによって登録された、公式に文書化されていないURLスキームを使用することは非常にお勧めできません。 FacebookアプリがインストールされているデバイスからWebサイトにアクセスすると機能する可能性がありますが、Facebookアプリがインストールされていないデバイス、特にPCやMacでは、リンク切れや奇妙なブラウザー警告になります。これらのすべてのケースをチェックしても、Facebook RLスキームはすでに変更されています いつでも再度変更される可能性があり、リンクが破損するか、さらに悪いことに、未定義の動作につながります。

29
jan.vogt