メインコンテンツまでスキップ

WeChat を使用してソーシャルログインを設定する (Native)

ネイティブアプリ (iOS および Android) における WeChat ソーシャルサインインのための公式 Logto コネクターです。

ヒント:

このガイドは、Logto コネクターについての基本的な理解があることを前提としています。未経験の方は、コネクター ガイドを参照して始めてください。

はじめに

コネクターの概念がわからない場合や、このコネクターをサインイン体験に追加する方法がわからない場合は、 Logto チュートリアル を参照してください。

ネイティブアプリでは、WeChat のサインイン方法としてウェブを使用することはできません。WeChat アプリへのナビゲーションが必要であり、またその SDK を使用する必要があります。

怖そうに聞こえるかもしれませんが、心配しないでください。このチュートリアルで簡単に扱います。

WeChat オープンプラットフォームでモバイルアプリを作成する

ヒント:

すでに完了しているセクションはスキップできます。

アカウントを作成する

https://open.weixin.qq.com/ を開き、右上の「サインアップ」ボタンをクリックし、サインアッププロセスを完了します。

モバイルアプリを作成する

作成したアカウントでサインインします。「モバイルアプリケーション」(移动应用) タブで、大きな緑のボタン「モバイルアプリを作成」(创建移动应用) をクリックします。

アプリタブ

アプリケーションフォームに必要な情報を入力しましょう。

モバイルアプリを作成

基本情報

ほとんどは非常に簡単で、いくつかのヒントがあります:

  • WeChat サインインをテストしたいだけで、アプリが App Store にない場合、「アプリが利用可能」セクションで「いいえ」を選択して「アプリダウンロードリンク」をスキップします。
  • 「アプリ操作フローチャート」は難しそうに見えます。私たちの経験から、簡単なフローチャートといくつかのアプリのスクリーンショットを用意することで、レビューを通過する可能性が高まります。

「次のステップ」をクリックして進みます。

プラットフォーム情報

Logto を WeChat ネイティブサインインと統合するために、iOS および Android プラットフォームのいずれかまたは両方を設定できます。

iOS アプリ

「iOS アプリ」(iOS 应用) をチェックし、アプリの対象デバイスタイプを適宜チェックします。

アプリプラットフォーム

App Store の可用性で「いいえ」を選択した場合、ここで「AppStore ダウンロードアドレス」を入力する必要はありません。

Bundle IDテストバージョン Bundle ID、および Universal Links を入力します(実際には、1 つのリンクだけで十分です 😂)。

注記:

Bundle IDテストバージョン Bundle ID は同じ値にすることができます。

ヒント:

WeChat はネイティブサインインにユニバーサルリンクを必要とします。設定していない場合やわからない場合は、 Apple 公式ドキュメント を参照してください。

Android アプリ

「Android アプリ」(Android 应用) をチェックします。

Android アプリプラットフォーム

アプリケーション署名 (应用签名) と アプリケーションパッケージ名 (应用包名) を入力します。

注記:

アプリを署名して署名を取得する必要があります。詳細については、 アプリの署名 を参照してください。

署名が完了したら、signingReport タスクを実行して署名を取得できます。

./gradlew your-android-project:signingReport

対応するビルドバリアントのレポートの MD5 値が アプリケーション署名 (应用签名) になりますが、値からすべてのセミコロンを削除し、小文字にすることを忘れないでください。

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

レビュー結果を待つ

プラットフォーム情報を入力した後、「レビューを送信」をクリックして続行します。通常、レビューは迅速に行われ、1 ~ 2 日以内に終了します。

提出ごとにレビュアーがランダムに割り当てられると考えられ、基準が変動することがあります。最初は拒否されるかもしれませんが、あきらめないでください!現状を説明し、レビュアーにどのように修正すればよいかを尋ねてください。

アプリで WeChat ネイティブサインインを有効にする

iOS

アプリに Logto iOS SDK を統合していると仮定します。この場合、非常に簡単で、WeChat SDK のドキュメントを読む必要さえありません:

1. Xcode プロジェクトでユニバーサルリンクと URL スキームを設定する

Xcode プロジェクト -> Signing & Capabilities タブで、「Associated Domains」機能と以前に設定したユニバーサルリンクを追加します。

ユニバーサルリンク

次に「Info」タブに移動し、WeChat App ID を使用して カスタム URL スキーム を追加します。

カスタム URL スキーム

最後に Info.plist を開き、LSApplicationQueriesSchemes の下に weixinULAPIweixin を追加します。

Plist
注記:

これらのアクションはあまり合理的ではないことはわかっていますが、これは私たちが見つけた最小限の実用的な解決策です。詳細については、 公式ガイド を参照してください。

2. LogtoSocialPluginWechat を Xcode プロジェクトに追加する

フレームワークを追加します:

フレームワークを追加

そして、Build Settings > Linking > Other Linker Flags に -ObjC を追加します:

リンカーフラグ
注記:

プラグインには WeChat Open SDK 1.9.2 が含まれています。プラグインをインポートしたら、直接 import WechatOpenSDK を使用できます。

3. プラグインを LogtoClient の初期化オプションに追加する

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

4. onOpenURL を適切に処理する

注記:

関数 LogtoClient.handle(url:) は、有効にしたすべてのネイティブコネクターを処理します。一度だけ呼び出せば十分です。

// 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 を統合していると仮定します。この場合、非常に簡単で、WeChat SDK のドキュメントを読む必要さえありません:

1. Wechat Open SDK をプロジェクトに追加する

Gradle プロジェクトのリポジトリに mavenCentral() リポジトリが含まれていることを確認します:

repositories {
// ...
mavenCentral()
}

依存関係に Wechat Open SDK を追加します:

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 を導入する

パッケージルートの下に wxapi パッケージを作成し、wxapi パッケージに WXEntryActivity を追加します(例として 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 ネイティブコネクターをテストする

これで完了です。 サインイン体験でソーシャルコネクターを有効にする のを忘れないでください。

WeChat ネイティブコネクターが有効になったら、アプリをビルドして実行し、動作を確認できます。

注意:

WeChat は WeChat アプリがインストールされていないデバイスに対する計画を持っていません。Logto はその場合、サインイン中にこのコネクターを非表示にします(これは 公式開発ガイド からの推奨方法です)。