「ツイートする」ボタンのようなSNS共有用のリンクはFirebaseであればDynamic Linksで容易に生成が可能です。
Firebase×Flutterといえば基本的にFlutterFire(https://firebase.flutter.dev/) を使っておけば間違いはないわけですが、残念ながら2023年1月7日現在、FlutterFireのDynamicLinksはWebに非対応です。
ではWebでは使えないのかというとそんなことはなく、DynamicLinksは形式に沿って記述すれば手動で生成できます。
今回はFlutter/Dartでサンプルを作成していますが、基本的に言語関係なく同様の方法で利用可能です。
完成形
黄色枠部分を生成します。
共有すると青枠部分のような見覚えのあるフォーマットが表示されます。
参考
正直なところこの記事読まなくても公式のページ読めば十分です。
https://firebase.google.com/docs/dynamic-links/link-previews
https://firebase.google.com/docs/dynamic-links/create-manually
流れ
- Firebaseコンソールでサブドメインを設定しておく
- 共有用画像のURLを用意する
- フォーマットの通りにURLを生成する
- 日本語や#等一部記号をURLエンコードする
※サブドメインに指定するのは赤線部分
サンプルとか
ソースコード
パッケージなのでダウンロードして展開するか、GitHubのURLをpubspec.yamlで指定してあげれば使用できると思います。
https://github.com/esuno/manually_constructured_dynamic_link