Aller au contenu principal

Configurer la connexion sociale avec WeChat (Natif)

Le connecteur officiel Logto pour la connexion sociale WeChat dans les applications natives (iOS et Android).

astuce:

Ce guide suppose que vous avez une compréhension de base des Connecteurs Logto. Pour ceux qui ne sont pas familiers, veuillez vous référer au guide des Connecteurs pour commencer.

Commencer

Si vous ne connaissez pas le concept de connecteur ou si vous ne savez pas comment ajouter ce connecteur à votre expérience de connexion, veuillez consulter le tutoriel Logto.

Dans les applications natives, vous ne pouvez pas utiliser le web comme méthode de connexion WeChat : la navigation vers l'application WeChat est requise, et il faut également utiliser leur SDK.

Nous savons que cela peut sembler effrayant, mais ne vous inquiétez pas. Nous allons gérer cela facilement dans ce tutoriel.

Créer une application mobile sur la plateforme ouverte WeChat

astuce:

Vous pouvez passer certaines sections si vous les avez déjà terminées.

Créer un compte

Ouvrez https://open.weixin.qq.com/, cliquez sur le bouton "Sign Up" en haut à droite, puis terminez le processus d'inscription.

Créer une application mobile

Connectez-vous avec le compte que vous venez de créer. Dans l'onglet "Mobile Application" (移动应用), cliquez sur le gros bouton vert "Create a mobile app" (创建移动应用).

Onglets de l'application

Remplissons les informations requises dans le formulaire de candidature.

Créer une application mobile

Informations de base

La plupart sont assez simples, et nous avons quelques conseils ici :

  • Si vous souhaitez simplement tester la connexion WeChat et que l'application n'est pas sur l'App Store, dans la section "App is available", choisissez "No" pour ignorer le "App download link".
  • Le "App operation flow chart" semble compliqué. D'après notre expérience, vous devez préparer un simple organigramme et plusieurs captures d'écran de l'application pour augmenter les chances de passer la validation.

Cliquez sur "Next step" pour continuer.

Informations sur la plateforme

Vous pouvez configurer une ou les deux plateformes iOS et Android pour intégrer Logto avec la connexion native WeChat.

Application iOS

Cochez "iOS app" (iOS 应用), puis cochez le type d'appareil cible de votre application en conséquence.

Plateforme de l'application

Si vous avez choisi "No" pour la disponibilité sur l'App Store, vous pouvez ignorer le champ "AppStore download address" ici.

Renseignez Bundle ID, Test version Bundle ID et Universal Links (en réalité, un seul lien suffit 😂).

remarque:

Bundle ID et Test version Bundle ID peuvent avoir la même valeur.

astuce:

WeChat exige un universal link pour la connexion native. Si vous ne l'avez pas configuré ou si vous ne savez pas ce que c'est, veuillez consulter la documentation officielle Apple.

Application Android

Cochez "Android app" (Android 应用).

Plateforme application Android

Renseignez Application Signing Signature (应用签名) et Application Package Name (应用包名).

remarque:

Vous devez signer votre application pour obtenir une signature. Consultez Signer votre application pour plus d'informations.

Après avoir terminé la signature, vous pouvez exécuter la tâche signingReport pour obtenir la signature.

./gradlew your-android-project:signingReport

La valeur MD5 du rapport de la variante de build correspondante sera la Application Signing Signature (应用签名), mais n'oubliez pas de retirer tous les points-virgules de la valeur et de la mettre en minuscules.

Ex. 1A:2B:3C:4D -> 1a2b3c4d.

En attente du résultat de la validation

Après avoir complété les informations de la plateforme, cliquez sur "Submit Review" pour continuer. En général, la validation est rapide et se termine en 1 à 2 jours.

Nous pensons que le validateur est attribué aléatoirement à chaque soumission, car le standard varie. Vous pouvez être refusé la première fois, mais ne vous découragez pas ! Expliquez votre situation et demandez au validateur comment la modifier.

Activer la connexion native WeChat dans votre application

iOS

Nous supposons que vous avez intégré le SDK Logto iOS dans votre application. Dans ce cas, les choses sont assez simples, et vous n'avez même pas besoin de lire la documentation du SDK WeChat :

1. Configurez l'universal link et le schéma d'URL dans votre projet Xcode

Dans le projet Xcode -> onglet Signing & Capabilities, ajoutez la capacité "Associated Domains" et l'universal link que vous avez configuré précédemment.

Universal link

Allez ensuite dans l'onglet "Info", ajoutez un schéma d'URL personnalisé avec l'App ID WeChat.

Schéma d'URL personnalisé

Enfin, ouvrez votre Info.plist, ajoutez weixinULAPI et weixin sous LSApplicationQueriesSchemes.

Plist
remarque:

Nous savons que ces actions ne sont pas très logiques, mais c'est la solution minimale fonctionnelle que nous avons trouvée. Voir le guide officiel magique pour plus d'informations.

2. Ajoutez LogtoSocialPluginWechat à votre projet Xcode

Ajoutez le framework :

Ajouter le framework

Et ajoutez -ObjC dans vos paramètres de build > Linking > Other Linker Flags :

Linker flags
remarque:

Le plugin inclut WeChat Open SDK 1.9.2. Vous pouvez directement utiliser import WechatOpenSDK une fois le plugin importé.

3. Ajoutez le plugin aux options d'initialisation de votre LogtoClient

let logtoClient = LogtoClient(
useConfig: config,
socialPlugins: [LogtoSocialPluginWechat()]
)

4. Gérez correctement onOpenURL

remarque:

La fonction LogtoClient.handle(url:) gérera tous les connecteurs natifs que vous avez activés. Vous n'avez besoin de l'appeler qu'une seule fois.

// SwiftUI
YourRootView()
.onOpenURL { url in
LogtoClient.handle(url: url)
}

// ou AppDelegate
func application(_ app: UIApplication, open url: URL, options: /*...*/) -> Bool {
LogtoClient.handle(url: url)
}

Android

Nous supposons que vous avez intégré le SDK Logto Android dans votre application. Dans ce cas, les choses sont assez simples, et vous n'avez même pas besoin de lire la documentation du SDK WeChat :

1. Ajoutez Wechat Open SDK à votre projet

Assurez-vous que le dépôt mavenCentral() est dans les repositories de votre projet Gradle :

repositories {
// ...
mavenCentral()
}

Ajoutez le Wechat Open SDK à vos dépendances :

dependencies {
// ...
api("com.tencent.mm.opensdk:wechat-sdk-android:6.8.0") // kotlin-script
// ou
api 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.0' // groovy-script
}

2. Ajoutez WXEntryActivity à votre projet

Créez un package wxapi sous la racine de votre package et ajoutez la classe WXEntryActivity dans le package wxapi (Prenons com.sample.app comme exemple) :

// WXEntryActivity.kt
package com.sample.app.wxapi

import io.logto.sdk.android.auth.social.wechat.WechatSocialResultActivity

class WXEntryActivity: WechatSocialResultActivity()
// WXEntryActivity.java
package com.sample.app.wxapi

import io.logto.sdk.android.auth.social.wechat.WechatSocialResultActivity

public class WXEntryActivity extends WechatSocialResultActivity {}

La position finale de WXEntryActivity dans le projet devrait ressembler à ceci (exemple en Kotlin) :

src/main/kotlin/com/sample/app/wxapi/WXEntryActivity.kt

3. Modifiez le AndroidManifest.xml

Ajoutez la ligne suivante à votre AndroidManifest.xml :

\<?xml version="1.0" encoding="utf-8"?>
\<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.app">

\<application>
\<!-- ligne à ajouter -->
\<activity android:name=".wxapi.WXEntryActivity" android:exported="true"/>
\</application>

\</manifest>

Tester le connecteur natif WeChat

C'est tout. N'oubliez pas d'activer le connecteur social dans l'inscription et la connexion.

Une fois le connecteur natif WeChat activé, vous pouvez construire et lancer votre application pour vérifier si cela fonctionne.

attention:

WeChat n'a pas prévu de solution pour les appareils sans l'application WeChat installée. Logto masquera ce connecteur lors de la connexion dans ce cas (ce qui est la méthode recommandée par le guide officiel de développement).