تم تحديث هذا المستند.
لم تكتمل الترجمة إلى اللغة ‏العربية‏ حتى الآن.
تاريخ تحديث المصدر باللغة الإنجليزية: ‏٢٣‏/٠٨‏/٢٠٢١

الحصول على الأذونات ورموز الوصول

يوضح هذا الدليل كيفية استخدام نافذة التصريح للحصول على رمز وصول مستخدم 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.

المعلمةعينة من القيمةالوصف

client_id
مطلوب
سلسلة رقمية

990602627938098

يتم عرض معرف تطبيق Instagram في لوحة معلومات التطبيق > المنتجات > Instagram > العرض الأساسي.

redirect_uri
مطلوب
سلسلة

https://socialsizzle.herokuapp.com/auth/

محدد URI حيث سنعيد توجيه المستخدمين بعد أن يسمحوا بطلب الإذن أو يرفضوه. وتأكد من أن هذا يتطابق تمامًا مع أحد محددات URI الأساسية في قائمتك التي تحتوي على محددات URI الصالحة لبروتوكول oAuth. تذكّر أن لوحة معلومات التطبيق قد أضافت شرطة مائلة لاحقة إلى محددات URI لديك، لذلك نوصيك بالتحقق من الصحة من خلال التحقق من القائمة.

response_type
مطلوب
سلسلة

code

يمكنك تعيين هذه القيمة إلى code.

scope
مطلوب
قائمة مفصولة بفاصلة أو بمسافة

user_profile,user_media

قائمة مفصولة بفاصلة أو قائمة مفصولة بمسافة ومشفرة بعنوان URL لطلب الأذونات من مستخدم التطبيق. user_profile مطلوب.

state
سلسلة

1

قيمة اختيارية تدل على حالة محددة للخادم. فعلى سبيل المثال، يمكنك استخدام ذلك لتجنب مشكلات CSRF. وسنعمل على تضمين هذه المعلمة والقيمة عند إعادة توجيه المستخدم إليك مرة أخرى.

عينة من عنوان URL لنافذة التصريح

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 الخاص بك ونضيف معلمات الخطأ التالية. أنت المسؤول عن التعامل مع حالات الفشل بطريقة لائقة وعن عرض رسالة مناسبة على المستخدمين لديك.

المعلمةالقيمة

error

access_denied

error_reason

user_denied

error_description

The+user+denied+your+request

عينة من إعادة توجيه التصريح الملغي

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 لديك.

المعلمةعينة من القيمةالوصف

client_id
مطلوب
سلسلة رقمية

990602627938098

يتم عرض معرف تطبيق Instagram في لوحة معلومات التطبيق > المنتجات > Instagram > العرض الأساسي.

client_secret
مطلوب
سلسلة

a1b2C3D4

المفتاح السري لتطبيق Instagram الذي يتم عرضه في لوحة معلومات التطبيق > المنتجات > Instagram > العرض الأساسي.

code
مطلوب
سلسلة

AQBx-hBsH3...

رمز التصريح الذي أرسلناه إليك في المعلمة code عند إعادة توجيه المستخدم إلى محدد redirect_uri لديك.

grant_type
مطلوب
سلسلة

authorization_code

يمكنك تعيين هذه القيمة إلى authorization_code.

redirect_uri
مطلوب
سلسلة

https://socialsizzle. heroku.com/auth/

محدد 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"
}