はじめに
公式のドキュメント は用意されていましたし、基本その通りにやりば問題ないと思いますが、少し詰まってしまったポイントもあったのでメモがてらまとめます。
手順
Firebaseの設定
Firebase console からログイン。
FirebaseのAPI KEYを確認しておく。
次にプロジェクトの設定へ移動。
「アプリを追加」からiOS, Androidそれぞれ以下の値を入力して追加。以下は全て必須。
iOS
- Bundle ID
- App Store ID
- App ID Prefix
App ID PrefixはUniversal Link用のapple-app-site-associationが裏側で生成されるのでそれに使われる。
Android
- パッケージ名
Firebase Dynamic Linksのドメインを確認する
適当に追加してみる。
ここで何かしらエラーが出たらアプリの追加をミスっている。
リンクを追加するとリンク一覧テーブルの左上に以下のようなドメインが表示されているはずなのでメモっておく(重要)。
https://xxx.app.goo.gl/
Pythonから叩いてみる
import requests
url = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=FIREBASE_API_KEY"
data = {
"dynamicLinkInfo": {
"dynamicLinkDomain": "xxx.app.goo.gl",
"link": "http://example.com/",
"androidInfo": {
"androidPackageName": "com.example.AndroidApp"
},
"iosInfo": {
"iosBundleId": "com.example.iOSApp"
}
}
}
result = requests.post(url, json=data)
result.ok
がtrueなら成功してます。
成功していれば result.json()
にURLが入ってます。
地味にハマったところ
Firebase console上でDynamic Linksを1つ追加しないと前述のドメインが分からない(自分が見逃していただけかもだけど)。
なので最初上記コード例の dynamicLinkDomain
のドメインは [firebaseのプロジェクト名].app.goo.gl
かな?と思って試したら以下のようなエラー
{
'error': {
'code': 400,
'message': 'Request contains an invalid argument.',
'status': 'INVALID_ARGUMENT'
}
}
どこが間違っているか分からず消耗してしまいました。
まぁ、他の人は詰まらない部分かもしれませんが自分はうっかり悩んでしまいました。
誰かの一助になればと思って書きました。
以上です。