Créer des Deep Links avec DyLy

⏱️6 min
Partager :

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.

bash
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.

bash
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": 1735894404
16 },
17 "jwtExpiresIn": 300,
18 "expiresIn": 2592000,
19 "keyProtected": false,
20 "oneTime": false
21 }'

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.

Références

Partager :

Articles connexes

Application Android CI/CD avec Flutter
Guides

Application Android CI/CD avec Flutter

Découvrez comment construire un pipeline CI/CD pour les apps Android avec Flutter. Basé sur GitHub Actions, sans fastlane.

mark241