أطلقت WeChat Public Platform مصادقة WeChat مؤخرًا ، ويمكنك الحصول على أذونات واجهة متقدمة بعد المصادقة. يفشل العديد من الأصدقاء أو لا يستطيعون فهم محتواهم عند استخدامه. اليوم ، يوفر لك محرر قناة التكنولوجيا الجديدة ترخيص صفحة WeChat Development Web للحصول على معلومات المستخدم الأساسية.
1. ما هو OAUTH2.0
الموقع الرسمي: http://oauth.net/ http://oauth.net/2/
تعريف موثوق: OAUTH هو بروتوكول مفتوح للسماح بترخيص آمن بطريقة بسيطة ومعتادة من تطبيقات الويب والجوال وسطح المكتب.
OAUTH هي اتفاقية مفتوحة تتيح للمستخدمين الحصول على موارد خاصة (مثل المعلومات الشخصية ، الصور ، مقاطع الفيديو ، قوائم الاتصال) المخزنة بواسطة تطبيقات الطرف الثالث بطريقة آمنة ومعتادة (مثل المعلومات الشخصية ، الصور ، مقاطع الفيديو ، قوائم الاتصال) المخزنة على موقع ويب أو تطبيق هاتف محمول أو تطبيق سطح المكتب دون توفير اسم المستخدم وكلمة المرور على طلبات الطرف الثالث.
Oauth 2.0 هو الإصدار التالي من بروتوكول OAuth ، ولكنه لا يتوافق مع Oauth 1.0. تركز OAUTH 2.0 على بساطة مطوري العملاء ، مع توفير عملية شهادة مخصصة لتطبيقات الويب وتطبيقات سطح المكتب والهواتف المحمولة وأجهزة غرفة المعيشة.
تتيح OAUTH للمستخدمين توفير رمز رمزي بدلاً من اسم المستخدم وكلمة المرور للوصول إلى البيانات التي يقومون بتخزينها في مزود خدمة معين. يصرح كل رمز موقع ويب معين (على سبيل المثال ، موقع تحرير الفيديو) للوصول إلى مورد معين (على سبيل المثال ، مجرد مقطع فيديو في ألبوم معين) خلال فترة زمنية محددة (على سبيل المثال ، خلال الساعتين القادمين). وبهذه الطريقة ، تتيح OAUTH للمستخدمين تفويض مواقع الويب الثالثة للوصول إلى المعلومات التي يقومون بتخزينها على مزود خدمة آخر دون مشاركة جميع أذونات الوصول أو بياناتهم.
تستخدم Sina Weibo API حاليًا أيضًا OAuth 2.0.
2. إذن من منصة WeChat العامة OAUTH2.0
الخطوات التفصيلية لترخيص منصة WeChat العامة OAUTH2.0 هي كما يلي:
1. يتبع المستخدمون حسابات WeChat العامة.
2. يوفر حساب WeChat العام عنوان URL لصفحة ترخيص طلب المستخدم.
3. ينقر المستخدم على عنوان URL لصفحة التفويض وسيبدأ طلبًا إلى الخادم.
4. يسأل الخادم المستخدم عما إذا كان يوافق على تفويض حساب WeChat العام (لا توجد خطوة من هذا القبيل عندما يكون النطاق SNSAPI_BASE)
5. يوافق المستخدم (لا توجد خطوة من هذا القبيل عندما يكون النطاق snsapi_base)
6. يقوم الخادم بتمرير رمز إلى حساب WeChat العام من خلال رد الاتصال
7. احصل على رمز على حساب WeChat العام
8. يطلب حساب WeChat العام الوصول إلى الخادم من خلال الرمز
9. يقوم الخادم بإرجاع الرمز المميز للوصول إلى حساب WeChat العام
10. يطلب حساب WeChat العام معلومات المستخدم إلى الخادم من خلال الرمز المميز للوصول (لا توجد خطوة من هذا القبيل عندما يكون النطاق SNSAPI_BASE)
11. يرسل الخادم معلومات المستخدم إلى حساب WeChat العام (لا توجد خطوة من هذا القبيل عندما يكون النطاق SNSAPI_BASE)
يمكن العثور على AppID و AppSecret المستخدمة في معرف تطوير مركز المطورين.
1. قم بتكوين اسم المجال لصفحة رد الاتصال
بعد إدخال خلفية منصة WeChat العامة ، أدخل جدول تقديم مركز المطور بدوره ، ابحث عن ترخيص صفحة الويب للحصول على معلومات المستخدم الأساسية.
انقر فوق تحرير على اليمين.
إن مواصفات تكوين اسم المجال لاستدعاء ترخيص هي اسم مجال كامل ولا يتضمن HTTP. على سبيل المثال ، اسم المجال الذي يتطلب ترخيص الويب هو: 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.
نحن هنا نملأ اسم المجال الثانوي للتطبيق Baidu من Fangbi Studio باسم Mascot.duapp.com
إذا لم يكن عنوان URL الخاص بك مدرجًا في القائمة السوداء ، فسيظهر في الأعلى
ثم ، ينجح تكوين اسم المجال.
2. ترخيص المستخدم والحصول على الرمز
في الدليل الجذر لاسم المجال ، قم بإنشاء ملف جديد ، اسمه it oauth2.php ، ومحتواه هو
<؟ phpif (isset ($ _ get ['code'])) {echo $ _get ['code'] ؛} else {echo "no code" ؛}؟>دعونا أولاً نفهم كيفية إنشاء صفحة التفويض:
https://open.weixin.qq.com/connect/oauth2/authorize؟appid=appid&redirect_uri=redirect_uri&response_type=code&scope=scope&state=state#wechat_redirect
وصف المعلمة
| المعلمة | يجب | يوضح |
|---|---|---|
| appid | نعم | المعرف الفريد للحساب الرسمي |
| redirect_uri | نعم | إعادة توجيه عنوان رابط رد الاتصال بعد إذن |
| استجابة | نعم | نوع الإرجاع ، يرجى ملء الرمز |
| نِطَاق | نعم | قم بتطبيق نطاق التفويض ، SNSAPI_BASE (لا تظهر صفحة إذن ، فقط يقفز ، يمكن الحصول على المستخدم OpenID فقط) ، SNSAPI_USERINFO (صفحة إذن منبثقة ، يمكنك الحصول على لقب ، جنسك ، والموقع من خلال OpenID. وحتى إذا كنت لا تتبع ، طالما أن المستخدم يقوم بتأليفه ، يمكن أن تكون معلوماتك يمكن أن تكون قد تم الحصول عليها)) |
| ولاية | لا | بعد إعادة التوجيه ، سيتم تضمين معلمات الحالة ، ويمكن للمطورين ملء أي قيم معلمة. |
| #wechat_redirect | لا | افتح الرابط مباشرة على WeChat ولا تملأ هذه المعلمة. يجب تضمين هذه المعلمة عند إعادة توجيه الصفحة 302 |
نطاق ترخيص التطبيق: نظرًا لأن SNSAPI_BASE لا يمكنه الحصول على OpenID إلا ، فهذا لا معنى له ، لذلك نستخدم SNSAPI_USERINFO.
عنوان رد الاتصال: املأ كعنوان ملف OAUTH2.PhP تم تحميله للتو ،
معلمات الحالة: أي رقم ، املأ 1 هنا
عنوان URL لطلب البناء هو كما يلي:
https://open.weixin.qq.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. هنا ، استخدم الرابط A لتغليفه على النحو التالي:
مرحبًا بك في متابعة [Jinbao] ، والتي يمكن أن تجعل الأمر أكثر ملاءمة بالنسبة لك للعثور على تقديم الطعام والملابس والمتاجر الأقسام ومتاجر صالون التجميل التي تناسب رغباتك بالقرب منك.
<أ href = "https://open.weixin.qq.com/connect/oauth2/authorize؟appid=wx8888888888888&redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"> click هنا لربط </a>
الدعم الفني استوديو Fangbi
عرض على النحو التالي في WeChat
بعد النقر على الربط ، تظهر واجهة ترخيص التطبيق
حدد السماح ، انقر
القفز إلى صفحة Auth2.php وتنفيذ
Echo $ _get ['code']
يتم عرض الرمز على الواجهة. في هذا الوقت ، يتم الحصول على الرابط عن طريق نسخ الرابط في الزر في الزاوية اليمنى العليا:
http://mascot.duapp.com/oauth2.php؟code=00b788e3b42043c8459a57a8d8ab5d9f&state=1
لقد نجحنا في الحصول على الرمز.
ملاحظة: إذا ظهرت مثل هذه الواجهة أثناء الربط ، فهذا يعني أن المعلمات غير صحيحة وتحتاج إلى العودة والتحقق من المعلمات.
3. استخدم الكود لتبادل Access_Token
كيفية إنشاء صفحة Access_Token للتبادل لترخيص الويب:
https://api.weixin.qq.com/sns/oauth2/access_token؟appid=appid&secret=secret&code=code&grant_type=authorization_code
وصف المعلمة
| المعلمة | هل هو ضروري | يوضح |
|---|---|---|
| appid | نعم | المعرف الفريد للحساب الرسمي |
| سر | نعم | AppSecret الحساب الرسمي |
| شفرة | نعم | املأ معلمات الكود التي تم الحصول عليها في الخطوة الأولى |
| Grant_type | نعم | املأ كـ Complization_Code |
الرمز: املأ هنا كقيمة تم الحصول عليها في الخطوة السابقة
عنوان URL لطلب البناء هو كما يلي:
https://api.weixin.qq.com/sns/oauth2/access_token؟appid=wx8888888888888 8.secret=aaaaaaaaaaaaaaaaaaaaaa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA و CODE = 00B788E3B42043C8459A57A8D8AB5D9F & GRANT_TYPE = Commertization_Code
يمكنك تنفيذ هذا البيان مباشرة في المتصفح:
((
فيما يلي المفتاح ، وهو الحصول على رمز بيانات JSON من خلال عنوان URL أعلاه
$ 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) ؛ // encode strings بتنسيق JSON $ Array = get_object_vars ($ jSondecode) ؛ // تحويل إلى صفيف // الخطين الأحمر هما النقطة الرئيسية ، بالنسبة إلى HTTPS ، لقد كنت أعاني من أكثر من يوم واحد من صفيف echo $ ؛
)
احصل على بيانات 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 Ouditization ، ملاحظة: يختلف Access_Token عن Access_Token المدعوم من الأساسي |
| expires_in | Access_token واجهة الاتصال المهلة اعتماد ، وحدة (ثواني) |
| refresh_token | user refrest access_token |
| OpenID | معرف المستخدم الفريد. يرجى ملاحظة أنه عندما لا يتبع المستخدمون الحساب الرسمي ، عندما يزور المستخدمون صفحة الويب الخاصة بالحساب الرسمي ، فإنهم سيقومون أيضًا بإنشاء مفتوح فريد للمستخدمين والحسابات الرسمية. |
| نِطَاق | نطاق ترخيص المستخدم ، مفصولة بفاصلة (،) |
لذلك ، تبادلنا بنجاح 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 |
| refresh_token | نعم | املأ معلمة refresh_token التي تم الحصول عليها من خلال Access_Token |
الهيكل كما يلي:
https://api.weixin.qq.com/sns/oauth2/refresh_token؟appid=wx8888888888888&grant_type=refresh_token&refresh_token=oezceiibsksxw0eoy lieAsr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqqvj-g0zwee5-ubjbz941eopqdqy5ss_gcs2z40dnvu9y5czpawzksiuz_6x_tfklupkdkm2232323232323232323232323232
تنفيذ بيانات JSON بنفس التنسيق في المتصفح
4. استخدم Access_Token للحصول على معلومات المستخدم
طريقة الطلب:
https://api.weixin.qq.com/sns/userinfo؟access_token=access_token&openid=openid
وصف المعلمة
| المعلمة | يصف |
|---|---|
| Access_Token | بيانات اعتماد واجهة Web Ouditization ، ملاحظة: يختلف Access_Token عن Access_Token المدعوم من الأساسي |
| OpenID | معرف فريد للمستخدم |
تم بناء عنوان URL على النحو التالي:
https://api.weixin.qq.com/sns/userinfo؟access_token=oezxceiibsksxw0eoylieasr0gmyd1awcffdhgb4fhs_kkf2cotgj2cbnukqvj-g0z Wee5-ubjbz941eopqdqy5ss_gcs2z40dnvu99y5ai1bw2uqn--2JxOblim5d6l9Rimvm8vg8Cbailpwa8vW
يمكنك تنفيذ هذا البيان مباشرة في المتصفح:
احصل على بيانات JSON التالية:
{"OpenId": "olvppjqs9bhvzwpj5a-vtyax3glc" ، "lamname": "fangbi" ، "sex: 1 ،" language ": "http://wx.qlogo.cn/mmopen/utpkyf69vabcrdrlbuspsdqn38doibckru6samcsnx558etalvm8pym6jlegzorh67hizibxu4bk1xnwzsxb3cs4qpbg18/0تفسير المعلمة:
| المعلمة | يصف |
|---|---|
| OpenID | معرف فريد للمستخدم |
| كنية | لقب المستخدم |
| الجنس | جنس المستخدم ، عندما تكون القيمة 1 ، تكون ذكرًا ، عندما تكون القيمة 2 ، فهي أنثى ، وعندما تكون القيمة 0 ، تكون غير معروفة |
| مقاطعة | مقاطعات مملوءة في ملف تعريف المستخدم |
| مدينة | مليئة بالمدينة بالمعلومات الشخصية للمستخدمين العاديين |
| دولة | البلد ، مثل الصين هو CN |
| Headimgurl | تمثل الصورة الرمزية ، القيمة الأخيرة حجم الصورة الرمزية المربعة (هناك 0 ، 46 ، 64 ، 96 ، و 132 قيمًا اختيارية ، و 0 تمثل 640*640 مربعة الصورة الرمزية). هذا العنصر فارغ عندما لا يكون للمستخدم الصورة الرمزية. |
| امتياز | معلومات امتياز المستخدم ، صفيف JSON ، مثل مستخدم WeChat Woka (ChinaUnicom) |
هذا يتوافق مع معلومات WeChat الشخصية الخاصة بي
في هذه المرحلة ، دون إدخال حسابي وكلمة المرور الخاصة بي ، حصل حساب WeChat العام على معلوماتي الشخصية ، بما في ذلك اسم اللقب والجنس والبلد والمقاطعة والمدينة والرثمة الشخصية وقائمة الامتياز.
شهادة OAUTH2 كاملة كاملة.
3. مظاهرة مفصلة
اتبع Fangbei Studio (انظر رمز الاستجابة السريعة أدناه) ، الرد "إذن" ، ارجع إلى الرسائل الرسومية والنص ، انقر فوق الصورة
في صفحة التأكيد ، انقر فوق "السماح"
النتيجة التي تم الحصول عليها من الملوثات العضوية الثابتة (تخضع الصورة للمعالجة المضادة للسرقة ، لذلك لا يمكن عرضها مباشرة ، يمكنك تنزيلها محليًا وعرضها)
ما ورد أعلاه يدور حول المعلومات المتعلقة بتطوير الويب الخاص بترخيص WeChat للحصول على معلومات أساسية للمستخدم ، وترخيص الويب للحصول على معلومات المستخدم ، وسيتم إضافة المعلومات ذات الصلة في المستقبل. شكرا لك على دعمك من قناة التكنولوجيا الجديدة!