すべてのプロダクト
Search
ドキュメントセンター

Quick Audience:WeChat ミニプログラム 認証 accessToken 構成ガイド

最終更新日:Jun 08, 2025

説明

バックグラウンド情報

AccessToken の構成を完了すると、ミニプログラム サブスクリプション通知を送信できます。この API は、次の機能を実装する必要があります。

1. WeChat アプレットの accessToken を取得します。入力パラメーターは、このリクエストのトークンを更新するかどうかを設定します。トークンの可用性を確保してください。

2. 接続テスト。構成後、QA は接続テストを実施します。 wxAppId は渡されません(WeChat アプレットの AppId、API ドキュメントを参照)。正しく返してください(コードは 200 で、トークンは空です)。

パラメーター

パラメーター

パラメーター

備考

アクセスされるリソースの URL です。

顧客側の WeChat トークンを取得するためのアドレスを入力します

API 開発者は API を提供し、上記の機能を実装する必要があります。

APP ID

署名検証に使用されるパラメーター

API 開発者と APPID を合意し、ここに入力してください。

AccessKey

署名検証に使用されるパラメーター

API 開発者と合意して AccessKey を入力してください。

SecretKey

署名検証に使用されるパラメーター

API 開発者と合意し、SecretKey をここに入力してください。

1. API ドキュメント

使用上の注意

WeChat ミニプログラムの AccessToken をクエリします

URL

${サードパーティが指定したアドレス}?appId=aaa&accessKey=xxx&timestamp=yyy

リクエストメソッド

POST

リクエストタイプ

application/json

戻り値のデータ型

*/*

パラメーター

データ型

データ型

必須

説明

1.wxAppId

string

body

はい

WeChat アプレット appId

2.refresh

boolean

body

はい

トークンを更新する必要があるかどうか。デフォルト値: false

状態

用語

注記

200

OK

リクエストは成功しました。

401

Unauthorized

リクエストは承認されていません。

403

Forbidden

リクエストが拒否されたため、エラーメッセージが返されました。

404

Not Found

リクエストされたリソースは存在しません。

戻り値のプロパティ名

カテゴリ

移行の説明

1.code

string

リクエストの状態コードです。 200 または OK は成功を示します。

2.message

string

エラーメッセージ。

3.accessToken

string

WeChat ミニプログラムの accessToken です。

4.expireTime

DateTime

URL の有効期限です。 HTTP リクエストヘッダー形式

4.requestId

string

リクエスト ID です。

リクエストパラメーター

http://{トークンを取得するために使用される URL}?appId=aaa&accessKey=xxx&timestamp=yyy

戻り値

{"code":"200","requestId":"string","message":"string","accessToken":"xxxx","expireTime":"2024-09-10 00:00:00"}

II. 署名検証の説明

QA は、以下の方法に従って署名を生成します。必要に応じて、この方法に従って署名を確認してください。

QA は、リクエストの API パスに appId、accessKey、timestamp(timestamp パラメーター)を含め、ヘッダーに署名 Authorization を追加する必要があります。

共通パラメーター

項目

値の例

場所

appId

オープン プラットフォームのアプリケーション ID です。

リクエスト URI のパラメーターセクション

accessKey

オープン プラットフォーム上のアプリケーションの ak

リクエスト URI のパラメーターセクション

timestamp

現在のタイムスタンプ(ミリ秒)

リクエスト URI のパラメーターセクション

Authorization

生成された署名

リクエストのヘッダー内

署名生成ルール:

  • リクエストパラメーターを使用して、正規化されたクエリ文字列を構築します。

  • リクエスト内のすべてのパラメーター(ドキュメントに記載されている「パブリック リクエストパラメーター」と、指定されたリクエスト API のカスタム パラメーターを含む)を、リクエストパラメーター名の辞書式順序でソートします。注: GET メソッドを使用してリクエストを送信する場合、これらのパラメーターはリクエスト URI のパラメーター部分です(つまり、"?" の後の "&" で接続された URI の部分です)

  • パラメーター名と値は、UTF-8 文字セットを使用して URL エンコードする必要があります。

サンプルコード

次の Java コードは、署名生成ロジックの例を示しています。

String appId="tttt";
String accessKey = "xxxx";
String accessSecret ="yyyy";
String timeStamp = "1708235644862";

SortedMap<String, String> map = new TreeMap<>();
map.put("appId", appId);
map.put("accessKey", accessKey);
map.put("accessSecret",accessSecret );
map.put("timestamp", timeStamp);
// get リクエストで他のクエリパラメータがある場合は、引き続き追加します

String aa = getCanonicalQueryString(map);
System.out.println(aa);
String authorization = org.apache.commons.codec.digest.DigestUtils.md5Hex(aa);
System.out.println(authorization);
public static String getCanonicalQueryString(SortedMap<String, String> paramsMap) {
        StringBuilder queryString = new StringBuilder();
        boolean isFirstParameter = true;

        for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
            String paramName = entry.getKey();
            String value = entry.getValue();

            if (!isFirstParameter) {
                queryString.append("&");
            } else {
                isFirstParameter = false;
            }
            queryString.append(paramName).append("=").append(value);
        }
        return queryString.toString();
}

ステートメントの例:

curl --location -g --request POST 'http://{トークンを取得するために構成された URL}?appId=aaa&accessKey=xxx&timestamp=yyy' \
--header 'Authorization: demosign'

3. 例外コード

例外コード

説明

ES05910010001

アプリが存在しません。

オープン プラットフォームで作成された APP が存在するかどうかを確認します。

ES05910010002

リクエストの署名が無効なため、エラーコードが返されました。

署名が正しく生成されているかどうかを確認します。

ES05910010003

タイムスタンプ検証に失敗しました。

生成されたタイムスタンプは 3 分以内に呼び出す必要があります。そうでない場合、検証は失敗します。

ES05910010004

アプリケーションには現在の API 権限がありません。

アプリケーションを使用するには、API をサブスクライブする必要があります。

ES05910010005

appId、accessKey、および timestamp パラメーターが正しいかどうかを確認します。

パブリック パラメーター appId、accessKey、および timestamp は、プラットフォームの仕様に従って渡す必要があります。