我在网站上提出了很多问题,但我仍然无法使用Firebase动态链接生成简短的动态链接。
我试图从一个动态链接生成简短的动态链接。生成动态链接后,它的工作完美,并可与任何其他应用程序共享。但无法从该动态链接生成短链接。
它在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我正在使用代码创建动态链接:
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();
}这也是工作,如果我将这个链接发送到任何应用程序通过意向!
但在那之后,我会尝试生成短链接:
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)));
}然后它显示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)如果android中还有其他技术,请给我建议。
发布于 2021-04-10 10:59:34
尝试使用原始url https://app.page.link/而不是https://app.page.link/ChosenName
在本例中,它将是: setDomainUriPrefix("https://onestickers.page.link/")而不是setDomainUriPrefix("https://onestickers.page.link/Stickers")
发布于 2019-08-07 19:43:13
创建长链接时也要创建短链接,如下所示
Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
.authority("api.wastickerapp.co")
.appendQueryParameter("packid", pid);
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(builder.build())
.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())
.buildShortDynamicLink()https://stackoverflow.com/questions/54249622
复制相似问题