قسمت 2 - بخش 1 : دریافت access_token اینستاگرام با استفاده از روش Server-side (Explicit) Flow

۲۵ مهر ، ۱۳۹۷

شما برای اینکه بتوانید به access_token اینستاگرام که در اصل حکم مجوز را برای شما دارد برسید در کل ۲ راه دارید یکی از طریق اینکه خود کاربر به شما اجازه دسترسی بدهد و راه دیگر از طریق درخواست شما به سرور و غیر مستقیم میباشد که ما در این مقاله راه سرور را گفته و در مقاله بعدی از طریق کاربر .
این راه از امنیت بیشتری نسبت به راه کاربر برخوردار میباشد. 

مرحله 1 : کاربر را به Authorization URL ما بفرستید

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

در این بخش ما برای کاربر صفحه Login را آورده و سپس صفحه تأیید برای دسترسی اپلیکیشن شما به اطلاعات Instagram آن فرد را می‌آوریم.

نکته : اگر دسترسی‌های بیشتر از “basic” میخواهید باید پارامتر دلخواه scope را تهیه کنید.

نکته : اگر میخواهید به حالتی خاص از سرور دسترسی داشته باشید باید پارامتر دلخواه “state” را تهیه کنید . برای مثال میتوانید از آن برای محافظت در برابر مسائل CSRF استفاده کنید.

 

مرحله 2 : دریافت پاسخ از طرف Instagram

وقتی یک کاربر اپلیکیشن شما را authorize میکند ، ما یک پاسخ به redirect_uri شما با یک پارامتر code که از آن در مرحله 3 استفاده میکنیم میفرستیم.

http://your-redirect-uri?code=CODE

این نکته را در نظر داشته باشید که host و مؤلفه‌های path ، redirect_URI شما دقیقا شبیه redirect_uri ثبت شده باشند ( دارای “/” باشند ) . شما ممکن است بخواهید query با پارامترهای اضافه‌تری در redirect_uri عرضه شده داشته باشید ، اگر میخواهید به صورت پویاتری رفتارتان را تغییر دهید مانند مثال‌های زیر عمل کنید :

 

REGISTERED REDIRECT URI

REDIRECT_URI PARAMETER PASSED TO /AUTHORIZE

VALID?

http://yourcallback.com/

http://yourcallback.com/

yes

http://yourcallback.com/

http://yourcallback.com/?this=that

yes

http://yourcallback.com/?this=that

http://yourcallback.com/

no

http://yourcallback.com/?this=that

http://yourcallback.com/?this=that&another=true

yes

http://yourcallback.com/?this=that

http://yourcallback.com/?another=true&this=that

no

http://yourcallback.com/callback

http://yourcallback.com/

no

http://yourcallback.com/callback

http://yourcallback.com/callback?type=mobile

yes

 

اگر درخواست شما برای قبول کردن اپلیکیشن شما از طرف کاربر رد شود پارامترهایی مانند پیغام‌های زیر به redirect_uri شما ارسال میشود :

error: access_denied
error_reason: user_denied
error_description: The user denied your request

http://your-redirect-uri?error=access_denied&error_reason=user_denied&error_description=The+user+denied+your+request

 

در این مرحله شما باید به کاربر پیغام شکست (failure) بدهید.

 

مرحله 3 : درخواست access_token

حال باید code دریافت شده در مرحله قبل را در این مرحله برای دریافت access_token استفاده کنید. برای دریافت باید با متد POST کدی را که در مرحله قبل دریافت کردیم را همراه با بعضی از پارامترهای شناسایی اپلیکیشن به endpoint access_token اپلیکیشن بفرستید. موارد زیر مورد نیاز هستند :

client_id : your client id
client_secret : your client secret
grant_type : authorization_codeis currently the only supported value
redirect_uri : the redirect_uri you used in the authorization request. Note: this has to be the same value as in the authorization request.
code : the exact code you received during the authorization step.

این یک نمونه میباشد :


curl -F 'client_id=CLIENT_ID' \
    -F 'client_secret=CLIENT_SECRET' \
    -F 'grant_type=authorization_code' \
    -F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
    -F 'code=CODE' \
https://api.instagram.com/oauth/access_token

 

اگر درخواست موفقیت آمیز باشد ، این صدا زدن پکیج منظمی از OAuth Token میدهد که میتوانید با آن درخواست‌های شناسایی شده به API بفرستید . مانند زیر :

 

{
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "..."
    }
}


برای خواندن راه دوم احراز هویت یعنی احراز هویت از طریق کاربر به مقاله دریافت access_token با استفاده از روش CIient-side مراجعه کنید.

 

میانگین آرا:
85.8% (7 نفر)
رای دهید:
مقالات مرتبط
مشاهده بیشتر...