يوضح هذا الدليل كيفية استخدام نافذة التصريح للحصول على رمز وصول مستخدم Instagramقصير الأجل والأذونات من مستخدمي Instagram.
تتيح نافذة التصريح لمستخدمي التطبيق إمكانية منح تطبيقك أذونات ورموز وصول مستخدم Instagramقصيرة الأجل. بعد أن يسجل المستخدم الدخول ويختار نوع البيانات التي يسمح لتطبيقك بالوصول إليها، سنعيد توجيه المستخدم إلى تطبيقك وسيتم تضمين رمز تصريح، والذي يمكنك بعد ذلك استبداله برمز وصول قصير الأجل.
لبدء العملية، احصل على نافذة التصريح واعرضها على المستخدم:
https://api.instagram.com/oauth/authorize ?client_id={instagram-app-id} &redirect_uri={redirect-uri} &scope={scope} &response_type=code &state={state} //Optional
مطلوب كل المعلمات باستثناء state
.
المعلمة | عينة من القيمة | الوصف |
---|---|---|
|
| يتم عرض معرف تطبيق Instagram في لوحة معلومات التطبيق > المنتجات > Instagram > العرض الأساسي. |
|
| محدد URI حيث سنعيد توجيه المستخدمين بعد أن يسمحوا بطلب الإذن أو يرفضوه. وتأكد من أن هذا يتطابق تمامًا مع أحد محددات URI الأساسية في قائمتك التي تحتوي على محددات URI الصالحة لبروتوكول oAuth. تذكّر أن لوحة معلومات التطبيق قد أضافت شرطة مائلة لاحقة إلى محددات URI لديك، لذلك نوصيك بالتحقق من الصحة من خلال التحقق من القائمة. |
|
| يمكنك تعيين هذه القيمة إلى |
|
| قائمة مفصولة بفاصلة أو قائمة مفصولة بمسافة ومشفرة بعنوان URL لطلب الأذونات من مستخدم التطبيق. |
|
| قيمة اختيارية تدل على حالة محددة للخادم. فعلى سبيل المثال، يمكنك استخدام ذلك لتجنب مشكلات CSRF. وسنعمل على تضمين هذه المعلمة والقيمة عند إعادة توجيه المستخدم إليك مرة أخرى. |
https://api.instagram.com/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=user_profile,user_media &response_type=code
إذا كان التصريح ناجحًا، فسنعيد توجيه المستخدم إلى محدد redirect_uri
الخاص بك وسنمنحك رمز تصريح من خلال معلمة سلسلة الاستعلام code
. احصل على الرمز البرمجي بحيث يمكن لتطبيقك استبداله برمز وصول مستخدم Instagram قصير الأجل.
تكون رموز التصريح صالحة لمدة ساعة واحدة، ولا يمكن استخدامها سوى مرة واحدة فقط.
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
لاحظ أنه سيتم إلحاق #_
بنهاية محدد URI لإعادة التوجيه، ولكنه ليس جزءًا من الرمز البرمجي نفسه، لذلك يمكنك استبعاده.
إذا ألغى المستخدم تدفق التصريح، فسنعيد توجيه المستخدم إلى redirect_uri
الخاص بك ونضيف معلمات الخطأ التالية. أنت المسؤول عن التعامل مع حالات الفشل بطريقة لائقة وعن عرض رسالة مناسبة على المستخدمين لديك.
المعلمة | القيمة |
---|---|
|
|
|
|
|
|
https://socialsizzle.herokuapp.com/auth/?error=access_denied &error_reason=user_denied &error_description=The+user+denied+your+request
بمجرد تلقي الرمز البرمجي، يمكنك استبداله برمز وصول قصير الأجل عن طريق إرسال طلب POST
إلى نقطة النهاية التالية:
POST https://api.instagram.com/oauth/access_token
يمكنك تضمين المعلمات التالية في النص الأساسي لطلب POST لديك.
المعلمة | عينة من القيمة | الوصف |
---|---|---|
|
| يتم عرض معرف تطبيق Instagram في لوحة معلومات التطبيق > المنتجات > Instagram > العرض الأساسي. |
|
| المفتاح السري لتطبيق Instagram الذي يتم عرضه في لوحة معلومات التطبيق > المنتجات > Instagram > العرض الأساسي. |
|
| رمز التصريح الذي أرسلناه إليك في المعلمة |
|
| يمكنك تعيين هذه القيمة إلى |
|
| محدد URI لإعادة التوجيه الذي أرسلته إلينا عندما قمت بتوجيه المستخدم إلى نافذة التصريح لدينا. ويجب أن يكون هذا هو محدد URI نفسه، وإلا فسنرفض الطلب. |
curl -X POST \ https://api.instagram.com/oauth/access_token \ -F client_id=990602627938098 \ -F client_secret=eb8c7... \ -F grant_type=authorization_code \ -F redirect_uri=https://socialsizzle.herokuapp.com/auth/ \ -F code=AQBx-hBsH3...
في حالة نجاح العملية، ستعرض واجهة API حمولة بيانات للغة JSON تحتوي على رمز وصول قصير الأجل لمستخدم التطبيق ومعرف المستخدم.
{ "access_token": "IGQVJ...", "user_id": 17841405793187218 }
احتفظ بالقيمة access_token
. هذا هو رمز وصول مستخدم Instagram قصير الأجل المتوفر لدى المستخدم والذي يمكن لتطبيقك استخدامه للوصول إلى نقاط نهاية واجهة API العرض الأساسي في Instagram.
إذا كان الطلب تالفًا بطريقة ما، فسترجع واجهة API وجود خطأ.
{ "error_type": "OAuthException", "code": 400, "error_message": "Matching code was not found or was already used" }