Créer des Deep Links avec DyLy

DyLy est un service qui raccourcit les URL et facilite la création de Deep Links.
Cet article explique comment créer des Deep Links de façon efficace avec DyLy.
Qu'est-ce qu'un Deep Link ?
Un Deep Link permet, lorsqu'on accède au lien, d'ouvrir directement l'application plutôt que le navigateur. Si l'application n'est pas installée, l'utilisateur est redirigé vers la boutique d'applications et, une fois l'installation terminée, la page souhaitée s'ouvre.
Apple prend officiellement en charge la « transition sans rupture du navigateur vers l'application » via Universal Links, tandis que Google propose une expérience similaire avec Android App Links. Comme le décrivent le guide Universal Links d'Apple et la documentation Android App Links de Google, les Deep Links améliorent non seulement l'expérience utilisateur, mais contribuent aussi à renforcer la sécurité et à augmenter les taux de conversion.
Cas d'usage
Les Deep Links peuvent être exploités de nombreuses manières.
Lien direct vers du contenu (vidéo, etc.)
Vous pouvez partager un lien sur les réseaux sociaux et diriger directement les utilisateurs vers un contenu précis. Sur le web, cela va de soi ; avec un Deep Link, une application mobile peut également ouvrir immédiatement le contenu interne. Il est aussi possible d'ajouter des paramètres de requête pour analyser, par exemple, le canal d'acquisition.
Lien d'invitation
Les Deep Links permettent d'inviter quelqu'un à rejoindre un groupe ou un espace dans l'application. Lorsque la personne invitée clique sur le lien, l'application s'ouvre et le processus d'invitation commence. Si l'application n'est pas installée, l'utilisateur est redirigé vers la boutique, puis l'invitation peut reprendre après l'installation.
Redirections
Pour définir une application comme destination de redirection dans un flux OAuth, on peut utiliser un schéma personnalisé (myapp://, par exemple), mais cela peut exposer à des interceptions de données. Avec un Deep Link, la redirection est reçue directement et en toute sécurité dans l'application.
Mise en pratique
Voyons comment implémenter concrètement un Deep Link. De nombreux services existent ; ici nous utilisons DyLy.
Création des métadonnées
Il faut lier le domaine à l'application. Pour plus de détails, consultez la documentation Apple et la documentation Google. En résumé, il s'agit d'héberger sur le web un point de terminaison prouvant la propriété du domaine et son association à l'application, afin qu'Apple et Google puissent valider la relation.
Il suffit de renvoyer un JSON conforme au format requis. Vous pouvez l'héberger vous-même (par exemple sur S3), mais DyLy propose une fonctionnalité simplifiant cette étape.
DyLy permet de créer un « JSON link » qui renvoie exactement le JSON défini à la destination du lien. Vous pouvez envoyer la requête suivante via l'API.
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "json",6 "projectId": "your-project-id",7 "path": ".well-known/apple-app-site-association",8 "rawJson": {9 "applinks": {10 "apps": [],11 "details": [12 {13 "appIDs": ["TEAM123.com.example.app"],14 "paths": [15 "NOT /_/*",16 "NOT /deferred-params",17 "/*"18 ]19 }20 ]21 }22 }23 }'Configuration côté application
Configurez ensuite vos applications selon les étapes propres à chaque système d'exploitation.
iOS
Dans Xcode, ajoutez Associated Domains dans Signing & Capabilities et enregistrez le domaine, par exemple applinks:example.com.
Android
Ajoutez <intent-filter android:autoVerify="true"> dans AndroidManifest.xml et validez le domaine avec android:autoVerify.
Lorsqu'un accès se fait via le navigateur, vous pouvez configurer le lien pour rediriger vers l'URL de votre choix.
Création du lien
Terminez en créant un lien dans DyLy.
En définissant type sur deep, vous obtenez un Deep Link comme ci-dessous.
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "deep",6 "projectId": "your-project-id",7 "path": "groups/awesome-group",8 "destinationUrl": "https://apps.apple.com/app/yourapp/id123456",9 "jwtClaims": {10 "invitationId": "inv-789xyz",11 "invitedBy": "user-123",12 "groupId": "awesome-group",13 "groupName": "Awesome Group",14 "permissions": "member",15 "timestamp": 173589440416 },17 "jwtExpiresIn": 300,18 "expiresIn": 2592000,19 "keyProtected": false,20 "oneTime": false21 }'Les valeurs de jwtClaims sont intégrées au JWT ; manipulez-les donc avec précaution.
Une fois le Deep Link créé, DyLy génère un lien contenant un JWT en paramètre de requête.
Traitement du lien dans l'application
Quand l'utilisateur clique sur le lien, l'application le reçoit. Procédez ensuite comme suit.
Vérifier le JWT
Assurez-vous que le lien a bien été émis par DyLy.
Avant cela, rappelons brièvement ce qu'est un JWT. Un JWT est, en simplifiant, un JSON signé. En vérifiant la signature, vous confirmez l'émetteur et vous vous assurez que le contenu n'a pas été altéré.
Puisque tout le monde peut créer un lien, il faut pouvoir distinguer les liens non officiels. Les liens légitimes sont signés avec la clé privée de DyLy ; votre application peut vérifier la signature pour confirmer l'authenticité du lien et l'intégrité de ses paramètres.
DyLy s'appuie sur la technologie JWT, largement utilisée, de sorte que vous pouvez réutiliser les bibliothèques JWT existantes pour la validation.
L'application doit donc commencer par vérifier le JWT lorsqu'elle reçoit le lien.
Contrôler les paramètres
Une fois la signature validée, extrayez les paramètres et réalisez le traitement souhaité.
Pour un lien d'invitation, par exemple, vous récupérez l'identifiant du groupe.
Gardez à l'esprit que, même si le JWT est signé, son contenu n'est pas chiffré (il existe des JWT chiffrés, mais c'est un format différent).
Cela signifie que n'importe qui peut consulter le contenu du JWT. N'inscrivez donc pas d'informations sensibles ou personnelles dans le JWT. Dans le cas d'un lien d'invitation, limitez-vous à un identifiant (ID de groupe, etc.) et conservez les détails sensibles côté serveur.
Deferred Deep Link
Si un utilisateur clique sur le lien depuis un appareil où l'application n'est pas installée, il est redirigé vers la boutique, puis, une fois l'installation terminée, la page correspondante du Deep Link s'ouvre. On parle alors de Deferred Deep Link. DyLy permet également de mettre en œuvre ce mécanisme.
Tout d'abord, l'utilisateur clique sur le lien depuis un appareil mobile dépourvu de l'application. Le lien s'exécute dans le navigateur, contacte le serveur de DyLy, qui enregistre des informations telles que l'adresse IP et le système d'exploitation avant de rediriger vers la boutique.
Lors du premier lancement après l'installation, l'application interroge DyLy pour savoir si cet appareil a accédé au lien auparavant. DyLy vérifie les informations de la requête (IP, OS, etc.) ; si une visite a eu lieu avant l'installation, il renvoie à l'application le Deep Link correspondant.
Ainsi, l'application peut récupérer le Deep Link lors du premier démarrage après l'installation.
Pour plus d'informations, consultez la documentation officielle de DyLy.
Résumé
Grâce à DyLy, il est facile de mettre en place des Deep Links. Dans un prochain article, nous verrons comment créer des liens d'invitation et d'autres scénarios concrets.




