API Instagram призначений не тільки для вас, але й для будь-якого користувача Instagram, який потенційно може пройти автентифікацію за допомогою вашого додатка. Я дотримувався інструкцій на веб-сайті Instagram Dev . Використовуючи перший (явний) метод, я зміг зробити це досить легко на сервері.
Крок 1) Додайте посилання або кнопку на свою веб-сторінку, яку користувач може натиснути, щоб розпочати процес автентифікації:
<a href="https://api.instagram.com/oauth/authorize/?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code">Get Started</a>
YOUR_CLIENT_ID
і YOUR_REDIRECT_URI
буде видано вам після успішної реєстрації вашого додатка в серверній мережі Instagram разом із YOUR_CLIENT_SECRET
вживаними нижче.
Крок 2) На URI, який ви визначили для своєї програми, який є таким самим, як YOUR_REDIRECT_URI
і вам, потрібно прийняти відповідь від сервера Instagram. Сервер Instagram поверне вам code
змінну у запиті. Потім вам потрібно використовувати цю code
та іншу інформацію про вашу програму, щоб зробити ще один запит безпосередньо з вашого сервера на отриманняaccess_token
. Я зробив це в python, використовуючи фреймворк Django, наступним чином:
прямий django до response
функції у urls.py
:
from django.conf.urls import url
from . import views
app_name = 'main'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^response/', views.response, name='response'),
]
Ось response
функція, яка обробляє запит views.py
:
from django.shortcuts import render
import urllib
import urllib2
import json
def response(request):
if 'code' in request.GET:
url = 'https://api.instagram.com/oauth/access_token'
values = {
'client_id':'YOUR_CLIENT_ID',
'client_secret':'YOUR_CLIENT_SECRET',
'redirect_uri':'YOUR_REDIRECT_URI',
'code':request.GET.get('code'),
'grant_type':'authorization_code'
}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
response_string = response.read()
insta_data = json.loads(response_string)
if 'access_token' in insta_data and 'user' in insta_data:
#authentication success
return render(request, 'main/response.html')
else:
#authentication failure after step 2
return render(request, 'main/auth_error.html')
elif 'error' in req.GET:
#authentication failure after step 1
return render(request, 'main/auth_error.html')
Це лише один із способів, але процес повинен бути майже однаковим у PHP або будь-якій іншій мові на стороні сервера.