WeChat オープンプラットフォームとの連携
利用シーン
WeChat オープンプラットフォーム(open.weixin.qq.com)は、OAuth 2.0 に基づく Web アプリケーションの認可ログインを提供しています。ユーザーは WeChat で認可を行うことで、外部サイトの認証を完了できます。PC では QR コードをスキャンし、モバイルの WeChat 内ブラウザーでは認可確認画面から操作します。この連携により、HAP ユーザーは WeChat 認可でログインできます。
前提条件
- 開発者資格の認証が完了した WeChat オープンプラットフォームのアカウントがあること(企業の営業許可証などの提出が必要です)。
- HAP サービスにインターネットからアクセ スでき、コールバックドメインの ICP 届出が完了していること(WeChat オープンプラットフォームの要件)。
操作手順
WeChat オープンプラットフォームで Web アプリケーションを設定する
-
WeChat オープンプラットフォームにログインします。
-
管理センター > Web アプリケーションに進み、Web アプリケーションを作成をクリックします。
-
アプリケーションの基本情報(名前、概要、公式サイト、アイコンなど)を入力し、次へをクリックします。
注意フォームのサイト情報登録表のスキャン画像は必須です。まず**「WeChat オープンプラットフォーム サイト情報登録表」**のリンクからテンプレートをダウンロードし、印刷して企業の公印を押し、責任者が署名してください。押印・署名済みの書類をスキャンまたは撮影してアップロードします(JPG/PNG/BMP 対応、1ファイル 5MB 以下、最大10枚)。書類がない場合や押印が不鮮明な場合は、審査に通りません。
-
認可コールバックドメインを入力します。HAP サービスの外部アクセス用ドメインと一致させてください(ドメインのみを入力し、プロトコルとパスは含めません)。
- 例:HAP のアクセス URL が
https://hap.domain.comの場合は、hap.domain.comと入力します。 - 後で HAP に WeChat ログインを追加した際に生成されるコールバック URLのドメインと一致させてください。
- 例:HAP のアクセス URL が
-
申請を送信し、WeChat チームによる審査を待ちます。承認後、アプリケーションの詳細画面で AppID と AppSecret を確認できます。
HAP に WeChat 認可ログインを設定する
-
プラットフォーム管理者として HAP にログインし、プラットフォーム管理 > セキュリティ > ログイン設定に進みます。
-
SSO セクションで + サービスをクリックし、WeChat を選択します。
-
ダイアログに次の情報を入力し、保存をクリックします。
- appid:WeChat オープンプラットフォームの Web アプリケーションの
AppID(例:wx9619034219c838xxxx)。 - appsecret:WeChat オープンプラットフォームの Web アプリケーションの
AppSecret。 - コールバック URL:HAP が
https://{HAP域名}/orgsso/weixin/callbackの形式で自動生成します。コピーをクリックして控えます。
- appid:WeChat オープンプラットフォームの Web アプリケーションの
-
コピーしたコールバック URLのドメイン(例:
hap.domain.com)を、WeChat オープンプラットフォームの該当 Web アプリケーションの認可コールバックドメインに設定します。作成時に入力済みの場合 は、アプリケーションの詳細画面で変更できます。HAP 側と完全に一致させてください。 -
保存すると、HAP のログイン画面に WeChat のログインボタンが表示されます。
ユーザーの SSO ログイン
WeChat SSO ログインを利用するには、ユーザーがプラットフォームで事前に WeChat アカウントを連携している必要があります。右上のアバター > 個人アカウント > アカウントとプライバシー > 外部アカウントに進み、WeChat を選択して連携をクリックします。
未連携のユーザーは、WeChat の認可に成功してもアカウント連携画面に案内されます。先にアカウント連携を完了すると、以降は WeChat 認可で直接ログインできます。

-
HAP のログイン画面を開き、WeChat でログインをクリックします。
-
WeChat の QR コード認可画面に移動します。WeChat で QR コードをスキャンし、スマートフォンで許可をタップして認可します。
-
認可後は自動的に HAP に戻ります。その WeChat アカウントを連携済みのユーザーは、そのままログインできます。未連携の場合はアカウント連携画面に移動し、連携後にログインできます。
-
ログインに失敗した場合の確認
-
プライベートデプロイ版では、プラットフォーム管理者として HAP にログインし、プラットフォーム管理 > 運用管理 > ログに進み、サービス名が
ssoのログを検索します。WeChat 側のerrcode/errmsgはssoサービスのログに記録されます。 -
主なエラー(実際に返されたエラーコードに応じて確認してください):
エラー 発生タイミング 確認事項 WeChat 認可画面に redirect_uri 参数错误(redirect_uri パラメーターエラー)が表示されるopen.weixin.qq.com/connect/qrconnectにリダイレクトしたときWeChat オープンプラットフォームの認可コールバックドメインと、HAP が自動生成したコールバック URL( https://{HAP域名}/orgsso/weixin/callback)のドメインが一致していません。両者を完全に一致させてください。オープンプラットフォームにはドメインのみを入力し、プロトコルとパスは含めませんMissParams認可開始前/コールバック時 HAP 側の appid、appsecret、コールバック URL がすべて保存されていないか、WeChat のコールバックにcodeパラメーターがありません。ログイン設定 > SSO > WeChat で確認し、保存し直してくださいGetUserAccessTokenFaildcodeをaccess_tokenに交換するときssoログの body を確認します:
·errcode 40029invalid code:認可コードが期限切れ、または使用済みです。再度ログインしてください
·errcode 40013invalid appid:入力したappidを確認してください
·errcode 40125invalid appsecret:入力したappsecretがリセットされていないか確認してくださいGetUserInfoFaildaccess_token + openidでユーザー情報を取得するときssoログの body を確認します:
·errcode 40001invalid credential:access_tokenが無効、または期限切れです
·errcode 40003invalid openid:openid と token が一致していません認可に成功しても、ログインせずアカウント連携画面に移動する コールバック成功後 対象の WeChat アカウントが、HAP の個人アカウント > アカウントとプライバシー > 外部アカウントでユーザーに連携されていません。画面の案内に従って連携してく ださい
-