ตั้งค่าการเข้าสู่ระบบโซเชียลด้วย WeChat (Native) (Set up social login with WeChat (Native))
ตัวเชื่อมต่อ Logto อย่างเป็นทางการสำหรับการเข้าสู่ระบบโซเชียล WeChat ในแอป native (iOS และ Android)
คู่มือนี้สมมติว่าคุณมีความเข้าใจพื้นฐานเกี่ยวกับ ตัวเชื่อมต่อ (Connectors) ของ Logto หากคุณยังไม่คุ้นเคย โปรดดูคู่มือ ตัวเชื่อมต่อ (Connectors) เพื่อเริ่มต้น
เริ่มต้นใช้งาน
หากคุณยังไม่เข้าใจแนวคิดของตัวเชื่อมต่อ หรือไม่รู้วิธีเพิ่มตัวเชื่อมต่อนี้ในประสบการณ์การลงชื่อเข้าใช้ของคุณ โปรดดู คู่มือ Logto
ในแอป native คุณไม่สามารถใช้เว็บเป็นวิธีลงชื่อเข้าใช้ของ WeChat ได้: จำเป็นต้องนำทางไปยังแอป WeChat และต้องใช้ SDK ของพวกเขาด้วย
เราเข้าใจว่ามันอาจดูน่ากลัว แต่ไม่ต้องกังวล เราจะจัดการได้อย่างง่ายดายในคู่มือนี้
สร้างแอปมือถือใน WeChat Open Platform
คุณสามารถข้ามบางส่วนได้หากคุณทำเสร็จแล้ว
สร้างบัญชี
เปิด https://open.weixin.qq.com/ คลิกปุ่ม "Sign Up" ที่มุมขวาบน แล้วดำเนินการสมัครให้เสร็จสิ้น
สร้างแอปมือถือ
ลงชื่อเข้าใช้ด้วยบัญชีที่คุณเพิ่งสร้าง ในแท็บ "Mobile Application" (移动应用) คลิกปุ่มสีเขียวขนาดใหญ่ "Create a mobile app" (创建移动应用)

กรอกข้อมูลที่จำเป็นในแบบฟอร์มสมัครแอป

ข้อมูลพื้นฐาน
ส่วนใหญ่ค่อนข้างตรงไปตรงมา และเรามีเคล็ดลับดังนี้:
- หากคุณแค่ต้องการทดสอบการเข้าสู่ระบบ WeChat และแอปยังไม่อยู่ใน App Store ในส่วน "App is available" ให้เลือก "No" เพื่อข้าม "App download link"
- "App operation flow chart" ดูเหมือนจะยุ่งยาก จากประสบการณ์ของเรา คุณควรเตรียมไดอะแกรมโฟลว์ง่าย ๆ และภาพหน้าจอแอปหลายภาพเพื่อเพิ่มโอกาสผ่านการตรวจสอบ
คลิก "Next step" เพื่อดำเนินการต่อ
ข้อมูลแพลตฟอร์ม
คุณสามารถกำหนดค่าแพลตฟอร์ม iOS หรือ Android หรือทั้งสองอย่าง เพื่อผสาน Logto กับการเข้าสู่ระบบ WeChat แบบ native
แอป iOS
เลือก "iOS app" (iOS 应用) แล้วเลือกประเภทอุปกรณ์เป้าหมายของแอปคุณให้ถูกต้อง

หากคุณเลือก "No" สำหรับความพร้อมใช้งานใน App Store คุณสามารถข้ามการกรอก "AppStore download address" ได้
กรอก Bundle ID, Test version Bundle ID, และ Universal Links (จริง ๆ แล้วต้องการแค่ลิงก์เดียว 😂)
Bundle ID และ Test version Bundle ID สามารถใช้ค่าเดียวกันได้
WeChat ต้องการ universal link สำหรับการเข้าสู่ระบบ native หากคุณยังไม่ได้ตั้งค่าหรือไม่รู้จัก โปรดดู เอกสารทางการของ Apple
แอป Android
เลือก "Android app" (Android 应用)

กรอก Application Signing Signature (应用签名) และ Application Package Name (应用包名)
คุณต้อง sign แอปของคุณเพื่อให้ได้ signature ดูข้อมูลเพิ่มเติมที่ Sign your app
หลังจาก sign เสร็จแล้ว คุณสามารถรัน task signingReport
เพื่อรับ signing signature
./gradlew your-android-project:signingReport
ค่า MD5
ของ build variant ที่เกี่ยวข้องจะเป็น Application Signing Signature (应用签名) แต่ต้องลบเครื่องหมายจุลภาคออกทั้งหมดและเปลี่ยนเป็นตัวพิมพ์เล็ก
เช่น 1A:2B:3C:4D
-> 1a2b3c4d
รอผลการตรวจสอบ
หลังจากกรอกข้อมูลแพลตฟอร์มเสร็จ คลิก "Submit Review" เพื่อดำเนินการต่อ โดยปกติการตรวจสอบจะเร็ว ใช้เวลา 1-2 วัน
เราสงสัยว่าผู้ตรวจสอบถูกสุ่มในแต่ละครั้งเพราะมาตรฐานไม่คงที่ คุณอาจถูกปฏิเสธครั้งแรก แต่ขอให้สู้ต่อ! แจ้งสถานะของคุณและสอบถามผู้ตรวจสอบว่าควรแก้ไขอย่างไร
เปิดใช้งานการเข้าสู่ระบบ WeChat native ในแอปของคุณ
iOS
เราถือว่าคุณได้ผสาน Logto iOS SDK ในแอปของคุณแล้ว ในกรณีนี้ ทุกอย่างค่อนข้างง่าย และคุณไม่จำเป็นต้องอ่านเอกสาร SDK ของ WeChat ด้วยซ้ำ:
1. กำหนดค่า universal link และ URL scheme ในโปรเจกต์ Xcode ของคุณ
ในโปรเจกต์ Xcode -> แท็บ Signing & Capabilities เพิ่มความสามารถ "Associated Domains" และ universal link ที่คุณตั้งค่าไว้ก่อนหน้านี้

จากนั้นไปที่แท็บ "Info" เพิ่ม custom URL scheme โดยใช้ WeChat App ID

สุดท้ายเปิด Info.plist
ของคุณ เพิ่ม weixinULAPI
และ weixin
ใน LSApplicationQueriesSchemes

เราทราบว่าขั้นตอนเหล่านี้อาจดูไม่สมเหตุสมผลนัก แต่นี่คือวิธีที่น้อยที่สุดที่ใช้งานได้ที่เราพบ ดู คู่มือทางการสุดมหัศจรรย์ สำหรับข้อมูลเพิ่มเติม
2. เพิ่ม LogtoSocialPluginWechat
ในโปรเจกต์ Xcode ของคุณ
เพิ่ม framework:

และเพิ่ม -ObjC
ใน Build Settings > Linking > Other Linker Flags:

ปลั๊กอินนี้รวม WeChat Open SDK 1.9.2 คุณสามารถใช้ import WechatOpenSDK
ได้ทันทีเมื่อ import ปลั๊กอินนี้
3. เพิ่มปลั๊กอินในตัวเลือก init ของ LogtoClient
ของคุณ
let logtoClient = LogtoClient(
useConfig: config,
socialPlugins: [LogtoSocialPluginWechat()]
)
4. จัดการ onOpenURL
ให้ถูกต้อง
ฟังก์ชัน LogtoClient.handle(url:)
จะจัดการตัวเชื่อมต่อ native ทั้งหมดที่คุณเปิดใช้งาน คุณเพียงแค่เรียกใช้ครั้งเดียว
// SwiftUI
YourRootView()
.onOpenURL { url in
LogtoClient.handle(url: url)
}
// หรือ AppDelegate
func application(_ app: UIApplication, open url: URL, options: /*...*/) -> Bool {
LogtoClient.handle(url: url)
}
Android
เราถือว่าคุณได้ผสาน Logto Android SDK ในแอปของคุณแล้ว ในกรณีนี้ ทุกอย่างค่อนข้างง่าย และคุณไม่จำเป็นต้องอ่านเอกสาร SDK ของ WeChat ด้วยซ้ำ:
1. เพิ่ม Wechat Open SDK
ในโปรเจกต์ของคุณ
ตรวจสอบให้แน่ใจว่ามี repository mavenCentral()
ใน repositories ของโปรเจกต์ Gradle ของคุณ:
repositories {
// ...
mavenCentral()
}
เพิ่ม Wechat Open SDK ใน dependencies ของคุณ:
dependencies {
// ...
api("com.tencent.mm.opensdk:wechat-sdk-android:6.8.0") // kotlin-script
// หรือ
api 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.0' // groovy-script
}
2. สร้าง WXEntryActivity
ในโปรเจกต์ของคุณ
สร้าง package wxapi
ภายใต้ root package ของคุณ และเพิ่ม WXEntryActivity
ใน package wxapi
(ตัวอย่างเช่น com.sample.app
):
// 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 {}
ตำแหน่งสุดท้ายของ WXEntryActivity
ในโปรเจกต์ควรเป็นแบบนี้ (ตัวอย่าง Kotlin):
src/main/kotlin/com/sample/app/wxapi/WXEntryActivity.kt
3. แก้ไข AndroidManifest.xml
เพิ่มบรรทัดต่อไปนี้ใน AndroidManifest.xml
ของคุณ:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.app">
<application>
<!-- บรรทัดที่ต้องเพิ่ม -->
<activity android:name=".wxapi.WXEntryActivity" android:exported="true"/>
</application>
</manifest>
ทดสอบตัวเชื่อมต่อ WeChat native
เรียบร้อยแล้ว อย่าลืม เปิดใช้งานตัวเชื่อมต่อโซเชียลในประสบการณ์การลงชื่อเข้าใช้
เมื่อเปิดใช้งานตัวเชื่อมต่อ WeChat native แล้ว คุณสามารถ build และรันแอปของคุณเพื่อตรวจสอบการทำงาน
WeChat ไม่มีแผนรองรับอุปกรณ์ที่ไม่ได้ติดตั้งแอป WeChat Logto จะซ่อนตัวเชื่อมต่อนี้ระหว่างการลงชื่อเข้าใช้หากเป็นเช่นนั้น (ซึ่งเป็นวิธีที่แนะนำโดย คู่มือพัฒนาอย่างเป็นทางการ)