I referred many questions in site ,but I can't still getting trouble to generate short dynamic link using Firebase Dynamic Links.
I am trying to generate short dynamic link from a dynamic link. After generating dynamic link its work perfectly and shareable to any other apps. But can't generating short link from that dynamic link.
Its shows error like this in logcat :
com.google.android.gms.common.api.ApiException: 400: Cannot shorten a short Dynamic Link: https://onestickers.page.link/Stickers?sd=Stickers%20for%20WhatsApp%20-%20WAStickerApps&si=https%3A%2F%2Fonestickers.com%2Fimg%2Fmain-logo.png&st=One%20Stickers&amv=11&apn=stickersforwhatsapp.wastickerapps&link=https%3A%2F%2Fapi.wastickerapp.co%3Fpackid%3D201
I am creating dynamic link using code:
private void createShareUri(String pid) {
Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
.authority("api.wastickerapp.co")
.appendQueryParameter("packid", pid);
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance()
.createDynamicLink()
.setDomainUriPrefix("https://onestickers.page.link/Stickers")
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
.setMinimumVersion(11)
.build())
.setSocialMetaTagParameters(
new DynamicLink.SocialMetaTagParameters.Builder()
.setTitle("One Stickers")
.setDescription("Stickers for WhatsApp - WAStickerApps")
.setImageUrl(Uri.parse("https://onestickers.com/img/main-logo.png"))
.build())
.setLink(builder.build())
.buildDynamicLink();
}
This will be generate dynamic link successfully: https://onestickers.page.link/Stickers?sd=Stickers%20for%20WhatsApp%20-%20WAStickerApps&si=https%3A%2F%2Fonestickers.com%2Fimg%2Fmain-logo.png&st=One%20Stickers&amv=11&apn=stickersforwhatsapp.wastickerapps&link=https%3A%2F%2Fapi.wastickerapp.co%3Fpackid%3D201
And also its working if I will send this link to any apps via Intent!
But after that I am trying to generate short link:
private void createShortDynamicLink(Uri uri) {
FirebaseDynamicLinks.getInstance()
.createDynamicLink()
.setLongLink(uri)
.buildShortDynamicLink()
.addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
Uri shortLink = Objects.requireNonNull(task.getResult()).getShortLink();
//Uri flowchartLink = task.getResult().getPreviewLink();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Stickers Link");
intent.putExtra(Intent.EXTRA_TEXT, shortLink.toString());
startActivity(intent);
}
}).addOnFailureListener(mContext, e -> Log.e("DynamicLink>>>", Log.getStackTraceString(e)));
}
And then Its shows logcat!:
E/DynamicLink>>>: com.google.android.gms.common.api.ApiException: 400: Cannot shorten a short Dynamic Link: https://onestickers.page.link/Stickers?sd=Stickers%20for%20WhatsApp%20-%20WAStickerApps&si=https%3A%2F%2Fonestickers.com%2Fimg%2Fmain-logo.png&st=One%20Stickers&amv=11&apn=stickersforwhatsapp.wastickerapps&link=https%3A%2F%2Fapi.wastickerapp.co%3Fpackid%3D201 [https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters]
at com.google.android.gms.common.api.internal.TaskUtil.setResultOrApiException(Unknown Source:6)
at com.google.firebase.dynamiclinks.internal.zzi.zza(Unknown Source:4)
at com.google.firebase.dynamiclinks.internal.zzn.dispatchTransaction(Unknown Source:10)
at com.google.android.gms.internal.firebase_dynamic_links.zzb.onTransact(Unknown Source:12)
at android.os.Binder.execTransact(Binder.java:697)
Please give suggestion if there is any other techniques in android.
try using the original url https://app.page.link/ instead of https://app.page.link/ChosenName
in your case it'll be: setDomainUriPrefix("https://onestickers.page.link/") instead of setDomainUriPrefix("https://onestickers.page.link/Stickers")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With