https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#2
ディレクトリ
1ステップ1:ユーザーはコードを承認して取得することに同意する
2 2番目のステップ:Webページ認証のためにaccess_tokenのコードを交換します
3ステップ3:access_tokenを更新する(必要な場合)
4ステップ4:ユーザー情報をプルする(snsapi_userinfoスコープが必要)
5添付ファイル:承認証明書(access_token)が有効かどうかを確認します
ステップ1:ユーザーはコードを承認して取得することに同意する
WeChatパブリックアカウントにスコープ(スコープパラメーター)を承認する権限があること(サービス番号が高度なインターフェイスを取得した後、スコープパラメーターにsnsapi_baseとsnsapi_userinfoがデフォルトで含まれていること)を保証し、フォロワーが次のページを開くようにガイドします。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect「リンクにアクセスできません」というメッセージが表示された場合は、パラメータの入力が間違っていないか、スコープがあるかどうかを確認してくださいパラメーターに対応する許可スコープ権限。
特別な注意:承認操作のセキュリティレベルが高いため、承認リクエストを開始すると、WeChatは定期的に強力な一致チェックを承認リンクで実行します。リンクのパラメーターの順序が正しくない場合、承認ページに正しくアクセスできません
参照リンク(このリンクエクスペリエンスをWeChatクライアントで開いてください):
スコープはsnsapi_baseです
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m% 3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type = code&scope = snsapi_base&state = 123#wechat_redirect
スコープはsnsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_STATE#wechat
特別な注意:リダイレクトコールバックcallback_uri、httpsリンクを使用して、認証コードのセキュリティを確保する必要があります。
パラメータの説明
パラメータを指定する必要があるかどうか
appidはパブリックアカウントの一意の識別子です。redirect_uriは承認後にリダイレクトされるコールバックリンクアドレスです。urlEncodeを使用してリンクを処理してください。response_type
は戻り値の型です。コードのスコープを入力してください。アプリケーションの承認のスコープです。snsapi_base
(承認ページは表示されず、直接ジャンプします) 、ユーザーのopenidのみを取得できます)、snsapi_userinfo
(ポップアップ認証ページ、openidを介してニックネーム、性別、場所を取得できます。また、ユーザーが承認している限り、注意を払っていない場合でも、情報を取得できます)
リダイレクト後の状態状態パラメーターが表示されます。開発者はa-zA-Z0-9のパラメーター値を128バイトまで入力できます。
#Wechat_redirectこのパラメーターは、直接開くか、ページ302リダイレクトするかに関係なく、呼び出す必要があります。
次の図は、スコープがsnsapi_userinfoと等しい場合の承認ページを示しています。
ユーザーが承認に同意した後
ユーザーが承認に同意すると、ページはredirect_uri /?コード= CODE&状態= STATEにジャンプします。
コードの説明:コードはaccess_tokenのチケットとして使用されます。ユーザーがコードを承認するたびにコードは異なります。コードは1回しか使用できず、5分間使用しないと自動的に期限切れになります。
エラー戻りコードは、次のように説明されています。
戻りコードの説明10003 redirect_uriドメイン名がバックグラウンド構成と一致していません
10004このパブリックアカウントはブロックされています
10005このパブリックアカウントにはこれらのスコープに対する権限がありません
10006このテスト番号に注意する必要
があります10009操作が頻繁すぎます。後で再試行してください
10010スコープを空にすることはできません
10011 redirect_uri空にすることはできません
10012 appidを空にすることはできません
10013状態を空にすることはできません
10015パブリックアカウントは承認済みのサードパーティプラットフォームで
はありません。承認ステータスを確認してください10016 WeChatオープンプラットフォームをサポートしていないAppid、パブリックアカウントを使用してくださいAppid
2番目のステップ:コードを介してaccess_tokenのコードを交換する
まず、コードと引き換えに特別なWebページ認証access_tokenがあることに注意してください。これは、基本サポートのaccess_tokenとは異なります(access_tokenは他のインターフェースの呼び出しに使用されます)。パブリックアカウントは、次のインターフェイスを介してWebページ認証access_tokenを取得できます。Webページ認証のスコープがsnsapi_baseの場合、このステップでWebページ認証access_tokenが取得されると同時にopenidも取得され、snsapi_baseスタイルのWebページ認証プロセスはここで終了します。
特別な注意:パブリックアカウントのシークレットと取得したaccess_tokenのセキュリティレベルは非常に高いため、サーバーにのみ保存し、クライアントに渡すことは許可されません。access_tokenの更新やaccess_tokenによるユーザー情報の取得などの後続の手順も、サーバーから開始する必要があります。
リクエスト方法
コードを取得したら、次のリンクをリクエストしてaccess_tokenを取得します。https://api.weixin.qq.com/sns/oauth2/access_token?appid = APPID&secret = SECRET&code = CODE&grant_type = authorization_code
パラメータの説明
パラメータを指定する必要があるかどうか
appidは
パブリックアカウントの一意の識別子で、secretはパブリックアカウントのappsecret
コード、最初のステップで取得したコードパラメータ、
grant_typeはauthorization_codeです。
説明に戻る
正しいときに返されるJSONパケットは次のとおりです。
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
パラメータの説明
access_token Webページ認証インターフェースコール資格情報、注意:この
access_token は、サポートされている基本的なaccess_token expires_in access_tokenインターフェースコール資格情報タイムアウト時間、単位(秒)とは
異なります。refresh_token user refresh
access_token openidユーザーの一意の識別子。パブリックアカウント、ユーザーアクセスに注意を払わない場合は注意してください。パブリックアカウントのWebページで
は、ユーザーの承認のスコープと、パブリックアカウントの一意のOpenID スコープユーザーがカンマ(、)で区切られて生成されます
エラーが発生すると、WeChatはJSONデータパケットを次のように返します(例はコード無効エラーです)。
{“ errcode”:40029、“ errmsg”:“無効なコード”}
ステップ3:access_tokenを更新する(必要な場合)
access_tokenの有効期間は短いため、refresh_tokenを使用して、access_tokenの有効期限が切れた後に更新できます。Refresh_tokenは30日間有効です。refresh_tokenの有効期限が切れると、ユーザー認証が必要になります。
リクエスト方法
2番目のステップでrefresh_tokenを取得したら、次のリンクをリクエストしてaccess_tokenを取得します。
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
パラメータを指定する必要があるかどうか
appidは、パブリック
アカウントの一意の識別子です。grant_typeは、refresh_tokenとして入力されます
。refresh_tokenは、access_tokenを通じて取得されたrefresh_tokenパラメータに入力されます。
説明に戻る
正しいときに返されるJSONパケットは次のとおりです。
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
パラメータの説明
access_token Webページ認証インターフェースコール資格情報、注意:この
access_token は、サポートされている基本的なaccess_token expires_in access_tokenインターフェースコール資格情報タイムアウト時間とは異なります。単位は秒です
。refresh_tokenユーザーリフレッシュ
access_token openidユーザーは、コンマで区切られたユーザー認証スコープを一意に識別します(、)
エラーが発生すると、WeChatは次のようにJSONパケットを返します(例はコード無効エラーです)。
{“ errcode”:40029、“ errmsg”:“無効なコード”}
ステップ4:ユーザー情報をプルする(snsapi_userinfoスコープが必要)
Webページ認証のスコープがsnsapi_userinfoの場合、開発者はaccess_tokenおよびopenidを介してユーザー情報をプルできます。
リクエスト方法
http:GET(httpsプロトコルを使用してください)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
パラメータの説明
パラメータの説明
access_token Webページ許可インターフェース呼び出し資格情報、注:この
access_token は、サポートされている基本的なaccess_token openidユーザーの固有ID とは異なります
lang各国語バージョンに戻りますzh_CN簡略化されたzh_TW伝統的なen英語
説明に戻る
正しいときに返されるJSONパケットは次のとおりです。
{
"openid":" OPENID",
"nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[ "PRIVILEGE1" "PRIVILEGE2" ],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
パラメータの説明
openidユーザーの一意の識別子
ニックネームユーザーのニックネーム
セックスユーザーの性別、値は1、男性は2、女性は0、値は0です。不明な
州のユーザープロファイルは
都市に入力されています一般的なユーザープロファイルは
国に入力されていますたとえば、中国がCN
headimgurlのユーザーアバターである場合、最後の値は正方形のアバターのサイズを表します(0、46、64、96、132の値はオプションで、0は640 * 640の正方形のアバターを表します)ユーザーがアバターを持たない場合、このアイテムは空です。ユーザーがアバターを変更すると、元のアバターURLは無効になります。
特権ユーザー特権情報、
WeChat Woka ユーザー(chinaunicom)unionid などのjson配列このフィールドは、ユーザーがパブリックアカウントをWeChatオープンプラットフォームアカウントにバインドした後にのみ表示されます。
エラーが発生すると、WeChatは次のようにJSONパケットを返します(例はopenidが無効です)。
{“ errcode”:40003、“ errmsg”: "無効なopenid"}
添付ファイル:認証証明書(access_token)が有効かどうかを確認します
リクエスト方法
http:GET(httpsプロトコルを使用してください)
https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
パラメータの説明
パラメータの説明
access_token Webページ認証インターフェース呼び出しの資格情報、注:この
access_tokenは、openidユーザーの一意の識別子によってサポートされる基本的なaccess_tokenとは異なります
正しいJSONの戻り結果を返します。
{「errcode」:0、「errmsg」:「ok」}
エラー時のJSONリターンの例:
{「errcode」:40003、「errmsg」:「無効なopenid」