Code to get a shortlink from a long dynamic deeplink via "Firebase Dynamic Links REST API"
While there are several variants of shortlink functions out there, this solution is very well suited for users of the cuddly Firebase world.
You will need a "Web API key" to authenticate your requests to the API and store it in
"strFirebaseWebApiKey":
Dynamic links are usually very long, unsightly and reveal unnecessarily it's technical details:
Shortlinks look alot better (e.g. in an invite message):
Shortlinks look alot better (e.g. in an invite message):
While there are several variants of shortlink functions out there, this solution is very well suited for users of the cuddly Firebase world.
B4X:
Sub GetFibaShortDynamicLink(strLongDynamicLink As String) As ResumableSub
' --> https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_a_long_link
Dim mapData As Map
mapData.Initialize
mapData.Put("longDynamicLink", strLongDynamicLink)
Dim jsonGen As JSONGenerator
jsonGen.Initialize(mapData)
Dim strJsonToSend As String = jsonGen.ToString
Dim j As HttpJob
j.Initialize("", Me)
j.PostString("https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=" & Starter.strFirebaseWebApiKey, strJsonToSend) ' <-- https://console.firebase.google.com/project/yyyyyyyourproject-yyyyyyyy/settings/general/android:yyyyyy.yourpackage.yyyyy
j.GetRequest.SetContentType("application/json")
wait for (j) JobDone(job As HttpJob)
Dim shortUrl As String = ""
If job.Success Then
Dim jp As JSONParser
jp.Initialize(job.GetString)
shortUrl = jp.NextObject.Get("shortLink")
Else
Log("GFDSL-01")
End If
job.Release
Return shortUrl
End Sub
B4X:
Dim sb As StringBuilder
sb.Initialize
sb.Append("https://").Append(Starter.app_code).Append(".app.goo.gl/")
sb.Append("?link=").Append(Starter.strBN_SL01 & "?data=" & strDownloadUrlHttps)
sb.Append("&apn=").Append(Starter.strAppPackNam)
sb.Append("&amv=").Append("2034")
'
Dim strDynamicLinkMan As String = sb.ToString
wait for( GetFibaShortDynamicLink(strDynamicLinkMan) ) complete (strShortLink As String)
Log("#- x49257, strShortLink=" & strShortLink)
You will need a "Web API key" to authenticate your requests to the API and store it in
"strFirebaseWebApiKey":
Last edited: