WeChatオープンプラットフォーム開発ドキュメント

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」

元の150件の記事を公開 賞賛された149件 810,000回

おすすめ

転載: blog.csdn.net/chaishen10000/article/details/105538051