WeChat Public Platformは最近、WeChat認証を開始し、認証後に高度なインターフェイスアクセス許可を取得できます。多くの友人が失敗するか、それを使用するときに自分のコンテンツを理解できません。今日、New Technology Channelの編集者は、基本的なユーザー情報を取得するためのWeChat Development Webページの承認を提供します。
1。OAUTH2.0とは何ですか
公式ウェブサイト:http://oauth.net/ http://oauth.net/2/
権威ある定義:OAUTHは、Web、モバイル、デスクトップアプリケーションのシンプルで標準的な方法で安全な承認を許可するオープンプロトコルです。
OAUTHは、ユーザーがサードパーティのアプリケーション(ユーザー情報、写真、ビデオ、連絡先リストなど)に保存されているサードパーティのアプリケーションによって保存されているプライベートリソース(ユーザーの個人情報、写真、ビデオ、連絡先リストなど)をウェブサイト、モバイルまたはデスクトップアプリケーションに保存するユーザー名とパスワードをサードパーティのアプリケーションに提供せずに保存することができるプライベートリソース(ユーザーの個人情報、写真、ビデオ、連絡先リストなど)を取得できるようにする公開契約です。
OAUTH 2.0はOAUTHプロトコルの次のバージョンですが、OAUTH 1.0との逆方向に互換性がありません。 OAUTH 2.0は、クライアント開発者のシンプルさに焦点を当て、Webアプリケーション、デスクトップアプリケーション、携帯電話、リビングルームデバイスに専用の認証プロセスを提供します。
OAUTHを使用すると、ユーザーはユーザー名とパスワードの代わりにトークンを提供して、特定のサービスプロバイダーに保存するデータにアクセスできます。各トークンは、特定のリソース(特定のアルバムのビデオのみ)にアクセスするために、特定のウェブサイト(ビデオ編集Webサイトなど)を許可します(特定の期間(例:次の2時間以内)。このようにして、OAUTHを使用すると、ユーザーは、すべてのアクセス権限またはデータを共有せずに、他のサービスプロバイダーに保存する情報にアクセスするようにサードパーティのWebサイトを許可できます。
Sina Weibo APIは現在、OAUTH 2.0も使用しています。
2。WeChat Public Platform OAuth2.0の承認
WECHATパブリックプラットフォームOAUTH2.0の承認のための詳細な手順は次のとおりです。
1。ユーザーはWeChatのパブリックアカウントをフォローします。
2。WECHATパブリックアカウントは、ユーザーリクエスト承認ページのURLを提供します。
3.ユーザーは認証ページURLをクリックし、サーバーへのリクエストを開始します。
4.サーバーは、WeChatパブリックアカウントを承認することに同意するかどうかをユーザーに尋ねます(SCOPEがSNSAPI_BASEである場合、そのようなステップはありません)
5。ユーザーは同意します(スコープがsnsapi_baseの場合、そのようなステップはありません)
6.サーバーは、コールバックを介してコードをWeChatパブリックアカウントに渡す
7. WeChatパブリックアカウントでコードを取得します
8。WECHATパブリックアカウントは、コードを介してサーバーへのアクセストークンを要求します
9.サーバーは、アクセストークンとOpenIDをWeChatパブリックアカウントに返します
10。WeChatパブリックアカウントは、アクセストークンを介してユーザー情報をサーバーにリクエストします(スコープがsnsapi_baseの場合、そのようなステップはありません)
11.サーバーはユーザー情報をWeChatパブリックアカウントに送信します(SCOPEがSNSAPI_BASEの場合、そのようなステップはありません)
使用されるAppIDとAppSecretは、開発者センター開発IDに記載されています。
1.承認コールバックページのドメイン名を構成する
WeChat Public Platformの背景を入力した後、開発者センター許可テーブルを順番に入力して、基本的なユーザー情報を取得するためのWebページの承認を見つけます。
右側の編集をクリックします。
認証コールバックのドメイン名構成仕様は完全なドメイン名であり、HTTPは含まれません。たとえば、Web認証が必要なドメイン名はwww.qq.comです。構成後、このドメイン名の下のページはhttp://www.qq.com/music.htmlおよびhttp://www.qq.com/login.htmlはすべてOAUTH2.0認証を実行できます。ただし、http://pay.qq.com、http://music.qq.com、およびhttp://qq.comはOAuth2.0認証を実行できません。
ここでは、fangbi StudioからMascot.duapp.comとしてBaiduアプリケーションのセカンダリドメイン名を記入します。
あなたのURLがブラックリストに載っていない場合、それは上部に表示されます
次に、ドメイン名の構成が成功します。
2。ユーザーの承認とコードを取得します
ドメイン名のルートディレクトリで、新しいファイルを作成し、oauth2.phpに名前を付け、そのコンテンツは
<?phpif(isset($ _ get ['code'])){echo $ _get ['code'];} else {echo "no code";}?>まず、承認ページの作成方法を理解しましょう。
https://open.weixin.qqc.com/connect/oauth2/authorize?appid=appid&redirect_uri=redirect_uri&response_type=code&scope&state = state#wechat_redirect
パラメーターの説明
| パラメーター | しなければならない | 説明します |
|---|---|---|
| appid | はい | 公式アカウントの一意の識別子 |
| Redirect_uri | はい | 許可後にリダイレクトコールバックリンクアドレス |
| Response_Type | はい | タイプを返します。コードに記入してください |
| 範囲 | はい | 承認範囲、SNSAPI_BASE(認証ページが表示されない、ジャンプするだけで、ユーザーOpenIDのみが取得できます)、SNSAPI_USERININFO(Popup認証ページ)、OpenIDを介してニックネーム、性別、場所を取得できます。 |
| 州 | いいえ | リダイレクトの後、状態パラメーターが含まれ、開発者は任意のパラメーター値に記入できます。 |
| #wechat_redirect | いいえ | WeChatでリンクを直接開き、このパラメーターを入力しません。このパラメーターは、302ページのリダイレクトを実行するときに含める必要があります |
アプリケーション認証範囲:SNSAPI_BASEはOpenIDのみを取得できるため、あまり意味がないため、SNSAPI_USERINFOを使用します。
コールバックアドレス:oauth2.phpのファイルアドレスがアップロードされたばかりのように入力します、
状態パラメーター:任意の数字、ここで1に記入してください
コンストラクトリクエストURLは次のとおりです。
https://open.weixin.qc.com/connect/oauth2/authorize?appid=wx88888888888888&redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
このリンクをWeChatに送信して、WeChatブラウザで開きます。ここで、次のようにリンクをカプセル化するリンクを使用してください。
[Jinbao]をフォローすることをお勧めします。
<a href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx888888888888888&redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect">clickここでバインドします</a>
テクニカルサポートFangbi Studio
WeChatで次のように表示します
バインディングをクリックした後、アプリケーション認証インターフェイスが表示されます
[許可]を選択し、クリックします
auth2.phpページにジャンプして実行します
echo $ _get ['code']
コードはインターフェイスに表示されます。この時点で、右上隅のボタンにリンクをコピーすることにより、リンクが取得されます。
http://mascot.duapp.com/oauth2.php?code=00b788e3b42043c8459a57a8d8ab55d9f&state=1
コードを正常に入手しました。
注:バインディング中にそのようなインターフェイスが表示される場合、パラメーターが正しくなく、パラメーターを確認して確認する必要があることを意味します。
3.コードを使用してAccess_Tokenを交換します
Web認証のためのExchangeのためにAccess_Tokenページを構築する方法:
https://api.weixin.qqc.com/sns/oauth2/access_token?appid=appid&secret=secret&code=code&grant_type=authorization_code
パラメーターの説明
| パラメーター | 必要ですか | 説明します |
|---|---|---|
| appid | はい | 公式アカウントの一意の識別子 |
| 秘密 | はい | 公式のアカウントAppSecret |
| コード | はい | 最初のステップで取得したコードパラメーターを入力します |
| grant_type | はい | authorization_codeとして記入します |
コード:前のステップで得られた値としてここに記入してください
コンストラクトリクエストURLは次のとおりです。
https://api.weixin.qqc.com/sns/oauth2/access_token?appid=wx8888888888888&secret = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&code=00b788e3b42043c8459a57a8d8ab5d9f&grant_type=authorization_code
このステートメントをブラウザで直接実行できます。
(
上記のURLを介してJSONデータコードを取得することが重要です
$ ch = curl_init(); curl_setopt($ ch、curlopt_url、$ url); curl_setopt($ ch、curlopt_returntransfer、1); //結果が文字列であり、画面curl_setopt($ ch、curlopt_header、0)に出力されることを要求します。 // httpヘッダーは効率を高速化しないでくださいcurl_setopt($ ch、curlopt_useragent、 'mozilla/5.0(互換; msie 5.01; windows nt 5.0)'); curl_setopt($ ch、curlopt_timeout、15); curl_setopt($ ch、curlopt_ssl_verifypeer、false); // httpsリクエストは証明書を確認せず、curl_setopt($ ch、curlopt_ssl_verifyhost、false); $ output = curl_exec($ ch); curl_close($ ch); $ jsondeCode = json_decode($ output); // json形式で文字列をエンコード$ array = get_object_vars($ jsondecode); //配列に変換// 2つの赤い線が重要なポイントです。HTTPSの場合、私は1日以上echo $ arrayに苦労してきました。
))
次のJSONデータを取得します。
{"Access_token": "oezxceiibsksxw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqqvj-g0zwee5-ubj BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5AI1BW2UQN - 2JXOBLIM5D6L9RIMVM8VG8CBAILPWA8VW "、 「expires_in」:7200、 "refresh_token": "oezxceiibsksxw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqqvj-g0zwee5-ubj BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5CZPAWZKSIUZ_6X_TFKLOXLU7KDKM2232WDXB3MSUZQ1A "、 "openid": "olvppjqs9bhvzwpj5a-vtyax3glc"、 "scope": "snsapi_userinfo"}データ形式は次のように解釈されます。
| パラメーター | 説明する |
|---|---|
| Access_token | Web Authorizationインターフェイスコール資格情報、注:このAccess_TokenはBASICでサポートされているAccess_Tokenとは異なります |
| expires_in | Access_tokenインターフェイスコールクレデンシャルタイムアウト、ユニット(秒) |
| refress_token | ユーザーの更新access_token |
| OpenID | ユーザー一意の識別子。ユーザーが公式アカウントに従っていない場合、ユーザーが公式アカウントのWebページにアクセスすると、ユーザーや公式アカウントのユニークなOpenIDも生成することに注意してください。 |
| 範囲 | コンマ(、)で区切られたユーザー認可の範囲 |
そのため、Codeを介してAccess_TokenとREFRESH_TOKENを交換することに成功しました。
access_tokenを更新します
公式文書には、access_tokenのさわやかな機能について言及していますが、これは必須ではありません。初めて使用することはできません。
URL要求方法は次のとおりです。
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid&grant_type=refresh_token&refresh_token=refresh_token
パラメーターの説明
| パラメーター | 必要ですか | 説明します |
|---|---|---|
| appid | はい | 公式アカウントの一意の識別子 |
| grant_type | はい | refresh_tokenとして記入してください |
| refress_token | はい | Access_Tokenを介して取得したREFRESH_TOKENパラメーターを入力します |
構造は次のとおりです。
https://api.weixin.qqc.com/sns/oauth2/refresh_token?appid=wx88888888888888&grant_type=refresh_token&refresh_token=oezxceiibsksksxw0eoy lieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqvj-g0zwee5-ubjbz941eopqdqy5sss_gcs2z40dnvu999y5czpawzksiuz_6666x_tfkloxlu7kdkdxm23232323232323232323232M
ブラウザで同じ形式でJSONデータを実行する
4.アクセス_Tokenを使用して、ユーザー情報を取得します
リクエスト方法:
https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openid=openid
パラメーターの説明
| パラメーター | 説明する |
|---|---|
| Access_token | Web Authorizationインターフェイスコール資格情報、注:このAccess_TokenはBASICでサポートされているAccess_Tokenとは異なります |
| OpenID | ユーザーの一意のID |
URLは次のように構築されます。
https://api.weixin.qqc.com/sns/userinfo?access_token=oezxceiibsksxw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqvj-g0z wee5-ubjbz941eopqdqy5ss_gcs2z40dnvu99y5ai1bw2uqn--2jxoblim5d6l9rimvm8vg88cbailpwa8vw&openid = olvppjqs9bhvzwzwpj5a-vtyax3glc
このステートメントをブラウザで直接実行できます。
次のJSONデータを取得します。
{"OpenID": "olvppjqs9bhvzwpj5a-vtyax3glc"、 "nickname": "fangbi"、 "sex":1、 "language": "zh_cn"、 "city": "Shenzhen"、 "Provence": "Guangdong"、 " "http://wx.qlogo.cn/mmopen/utpkyf69vabcrdrlbuspsdqn38doibckru6samcsnx558etalvm8pym6jlegzorh67hyzibizpxu4bk1xnwzxb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3csb3 []}パラメーター解釈:
| パラメーター | 説明する |
|---|---|
| OpenID | ユーザーの一意のID |
| ニックネーム | ユーザーニックネーム |
| セックス | ユーザーの性別、値が1の場合、それは男性であり、値が2の場合、それは女性であり、値が0の場合、それは不明です |
| 州 | 州のプロファイルが満たされています |
| 市 | 都市は通常のユーザーの個人情報で満たされています |
| 国 | 中国などの国はCNです |
| headimgurl | ユーザーアバター、最後の値は正方形のアバターのサイズを表します(0、46、64、96、および132の値はオプションであり、0は640*640平方アバターを表します)。このアイテムは、ユーザーにアバターがないときに空です。 |
| 特権 | ユーザー特権情報、wechat wokaユーザー(中国語)などのJSONアレイ |
これは私の個人的なWeChat情報と一致しています
この時点で、私のアカウントとパスワードを入力せずに、WeChatのパブリックアカウントJinbaoは、私のニックネーム、性別、国、州、都市、個人のアバター、特権リストなど、私の個人情報を取得しました。
完全なOAUTH2認定が完了しました。
3。詳細なデモ
Fangbei Studio(下のQRコードを参照)をフォローし、「承認」に返信し、グラフィックとテキストメッセージに戻り、写真をクリックします
確認ページで、「許可」をクリックします
得られた結果がポップアップします(写真は盗難防止処理の対象であるため、直接表示することはできません。ローカルにダウンロードして表示できます)
上記は、ユーザーの基本情報を取得するためのWeChat認証のWeb開発に関する情報、ユーザー情報を取得するためのWeb許可、および将来的に関連情報が追加されることになっています。新しいテクノロジーチャネルからのご支援ありがとうございます!