Configurar login social com WeChat (Nativo)
O conector oficial do Logto para login social do WeChat em aplicativos nativos (iOS e Android).
Este guia assume que você tem um entendimento básico dos Conectores (Connectors) do Logto. Para aqueles que não estão familiarizados, consulte o guia de Conectores para começar.
Primeiros passos
Se você não conhece o conceito de conector ou não sabe como adicionar este conector à sua Experiência de login, consulte o tutorial do Logto.
Em aplicativos nativos, não é possível usar a web como método de login do WeChat: é necessário navegar até o aplicativo WeChat, além de ser obrigatório o uso do SDK deles.
Sabemos que parece complicado, mas não se preocupe. Vamos lidar com isso facilmente neste tutorial.
Crie um aplicativo móvel na WeChat Open Platform
Você pode pular algumas seções se já tiver concluído.
Crie uma conta
Acesse https://open.weixin.qq.com/, clique no botão "Sign Up" no canto superior direito e conclua o processo de cadastro.
Crie um aplicativo móvel
Faça login com a conta que você acabou de criar. Na aba "Mobile Application" (移动应用), clique no grande botão verde "Create a mobile app" (创建移动应用).
Vamos preencher as informações obrigatórias no formulário de inscrição.
Informações básicas
A maioria delas é bem direta, e temos algumas dicas aqui:
- Se você só quer testar o login do WeChat e o aplicativo não está na App Store, na seção "App is available", escolha "No" para pular o "App download link".
- O "App operation flow chart" parece complicado. Pela nossa experiência, você precisa preparar um fluxograma simples e algumas capturas de tela do aplicativo para aumentar as chances de aprovação.
Clique em "Next step" para continuar.
Informações da plataforma
Você pode configurar uma ou ambas as plataformas iOS e Android para integrar o Logto com o login nativo do WeChat.
Aplicativo iOS
Marque "iOS app" (iOS 应用) e, em seguida, marque o tipo de dispositivo alvo do seu aplicativo conforme necessário.
Se você escolheu "No" para a disponibilidade na App Store, pode pular o preenchimento do "AppStore download address" aqui.
Preencha o Bundle ID, Test version Bundle ID e Universal Links (na verdade, apenas um link é necessário 😂).
Bundle ID e Test version Bundle ID podem ter o mesmo valor.
O WeChat exige universal link para login nativo. Se você ainda não configurou ou não sabe o que é, consulte a documentação oficial da Apple.
Aplicativo Android
Marque "Android app" (Android 应用).
Preencha Application Signing Signature (应用签名) e Application Package Name (应用包名).
Você precisa assinar seu aplicativo para obter a assinatura. Consulte Assine seu aplicativo para mais informações.
Após concluir a assinatura, você pode executar a tarefa signingReport para obter a assinatura.
./gradlew your-android-project:signingReport
O valor MD5 do relatório da variante de build correspondente será o Application Signing Signature (应用签名), mas lembre-se de remover todos os dois-pontos do valor e deixá-lo em minúsculas.
Exemplo: 1A:2B:3C:4D -> 1a2b3c4d.
Aguardando o resultado da análise
Após concluir as informações da plataforma, clique em "Submit Review" para continuar. Normalmente, a análise é rápida e termina em 1-2 dias.
Suspeitamos que o revisor é alocado aleatoriamente a cada envio, já que o padrão é variável. Você pode ser rejeitado na primeira vez, mas não desista! Explique sua situação e pergunte ao revisor como modificar.
Ative o login nativo do WeChat no seu aplicativo
iOS
Assumimos que você já integrou o Logto iOS SDK no seu aplicativo. Neste caso, as coisas são bem simples e você nem precisa ler a documentação do SDK do WeChat:
1. Configure o universal link e o esquema de URL no seu projeto Xcode
No projeto Xcode -> aba Signing & Capabilities, adicione a capacidade "Associated Domains" e o universal link que você configurou anteriormente.
Depois, vá para a aba "Info" e adicione um custom URL scheme com o App ID do WeChat.
Por fim, abra seu Info.plist e adicione weixinULAPI e weixin em LSApplicationQueriesSchemes.
Sabemos que essas ações não são muito razoáveis, mas esta é a solução mínima que encontramos. Veja o guia oficial mágico para mais informações.
2. Adicione LogtoSocialPluginWechat ao seu projeto Xcode
Adicione o framework:
E adicione -ObjC em Build Settings > Linking > Other Linker Flags:
O plugin inclui o WeChat Open SDK 1.9.2. Você pode usar diretamente import WechatOpenSDK após importar o plugin.
3. Adicione o plugin nas opções de inicialização do seu LogtoClient
let logtoClient = LogtoClient(
useConfig: config,
socialPlugins: [LogtoSocialPluginWechat()]
)
4. Trate o onOpenURL corretamente
A função LogtoClient.handle(url:) irá tratar todos os conectores nativos que você ativou. Você só precisa chamá-la uma vez.
// 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
Assumimos que você já integrou o Logto Android SDK no seu aplicativo. Neste caso, as coisas são bem simples e você nem precisa ler a documentação do SDK do WeChat:
1. Adicione o Wechat Open SDK ao seu projeto
Garanta que o repositório mavenCentral() está nos repositórios do seu projeto Gradle:
repositories {
// ...
mavenCentral()
}
Adicione o Wechat Open SDK às suas dependências:
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. Implemente o WXEntryActivity no seu projeto
Crie um pacote wxapi sob o root do seu pacote e adicione o WXEntryActivity no pacote wxapi (usando com.sample.app como exemplo):
// 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 {}
A posição final do WXEntryActivity no projeto deve ser assim (usando Kotlin como exemplo):
src/main/kotlin/com/sample/app/wxapi/WXEntryActivity.kt
3. Modifique o AndroidManifest.xml
Adicione a seguinte linha ao seu AndroidManifest.xml:
\<?xml version="1.0" encoding="utf-8"?>
\<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.app">
\<application>
\<!-- linha a ser adicionada -->
\<activity android:name=".wxapi.WXEntryActivity" android:exported="true"/>
\</application>
\</manifest>
Teste o conector nativo do WeChat
É isso! Não se esqueça de Ativar o conector social no cadastro e login.
Depois que o conector nativo do WeChat estiver ativado, você pode compilar e executar seu aplicativo para ver se está funcionando.
O WeChat não tem solução para dispositivos sem o aplicativo WeChat instalado. O Logto irá ocultar este conector durante o login nesses casos (que é a forma recomendada pelo guia oficial de desenvolvimento).