2017-08-20 1 views
2

créant un lien dynamiqueShortDynamicLink ne génère pas lien court pour des liens dynamiques

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() 
      .setLink(Uri.parse("http://shaharapp.in/")) 
      .setDynamicLinkDomain("https://cuh8g.app.goo.gl/") 
      // Open links with this app on Android 
      .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) 
      // Open links with com.example.ios on iOS 
      .buildDynamicLink(); 

    dynamicLinkUri = dynamicLink.getUri(); 

après, je reçois un long lien dynamique. passant cette dynamicLinkUri à shortLinkTask

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() 
      .setLongLink(dynamicLinkUri) 
      .buildShortDynamicLink(); 
    shortLinkTask.addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() { 
     @Override 
     public void onComplete(@NonNull Task<ShortDynamicLink> task) { 
      if (task.isSuccessful()) { 


       Uri shortLink = task.getResult().getShortLink(); 
       link_txt.setText(shortLink.toString()); 
      } 
      else { 

       ViewGroup container = (ViewGroup) findViewById(R.id.snackbar_layout); 
       Snackbar.make(container, "error", Snackbar.LENGTH_SHORT).show(); 

      } 
     } 
    }); 

Cette tâche ne termine pas, après le débogage je suis arrivé ce

com.google.android.gms.common.api.ApiException: 7: Bad Request classe com.google.android.gms.common.api.ApiException

+0

Il pourrait être aussi en raison de manque étapes de configuration -> https://stackoverflow.com/questions/45826742/cant-create-short-firebase- dynamic-link-dynamic-link-error-7-forbidden –

Répondre

2

Quel est le lien long que vous obtenez? Je suggère d'essayer le long lien et de m'assurer que le lien fonctionne correctement.

De même, ajoutez &d=1 au lien long. Ce lien naviguera vers la page de débogage avec les erreurs/avertissements possibles affichés.

En regardant votre code, une raison possible de l'échec est le format du domaine. Voir l'exemple https://firebase.google.com/docs/dynamic-links/android/create. Domaine devrait être une chaîne contenant seul domaine, sans système https:

.setDynamicLinkDomain("abc123.app.goo.gl") 
+0

Acceptez que la correction de la chaîne de domaine devrait résoudre le problème. –

+0

ça marche, merci beaucoup – sam