Lời nói đầu
API Instagram với Instagram Login cho phép các account Instagram professional bao gồm businesses và creators account sử dụng ứng dụng của bạn để quản lý sự hiện diện của họ trên Instagram. API có thể được sử dụng để:
- Messaging – Gửi và nhận tin nhắn với khách hàng hoặc những người quan tâm đến tài khoản Instagram của họ
- Comment moderation – Quản lý và trả lời bình luận trên phương tiện truyền thông của họ
- Content publishing – Nhận và xuất bản nội dung (ảnh/video) của họ
- Mentions – Xác định nội dung mà họ đã được người dùng Instagram khác đề cập @username
Lưu ý: API này không yêu cầu phải liên kết Trang Facebook với Instagram professional account.
Giới hạn: API này không thể truy cập quảng cáo, thông tin chi tiết hoặc gắn thẻ.
Giờ thì hãy đến với bước tạo Meta app trên facebook developer nhé!
Tạo Meta App
Trước khi bắt đầu bạn hãy truy cập vào Facebook Developer và đăng nhập nếu chưa đăng nhập nhé
Bước 1: Tạo ứng dụng
Bạn hãy ấn nút tạo app (create app) ở góc trên cùng bên phải
Đến bước điền thông tin:
- Hồ sơ doanh nghiệp: Chọn Tiếp
- Trường họp sử dụng: Chọn Khác -> Tiếp
- Loại: Chọn Kinh doanh -> Tiếp
- Chi tiết: Điền tên ứng dụng, email -> Tạo ứng dụng
Chúc mừng, vậy là bạn đã tạo được 1 ứng dụng rồi đó!!!
Bước 2: Thiết lập Instagram
Bạn hay chọn Thiết lập để thêm Instagram vào ứng dụng nhé!!!
Sau đó bạn dẽ được điều hướng tới màn hình tùy chỉnh, ở đây bạn sẽ tùy chỉnh thiết lập API
Bạn hãy thiết lập các thông tin như
- Tạo mã truy cập
- Cấu hình webhook (nếu cần)
- Thiết lập tính năng đăng nhập cho doanh nghiệp trên Instagram
Lưu ý: bạn phải thiết lập URI chuyển hướng OAuth, để khi đăng nhập Instagram thành công, FB sẽ gửi code lên param của URI, code này được sử dụng như nào, mình sẽ nói tiếp vào phần sau nhé.
Bước 3: Tạo Login URL
Login URL sẽ có dạng như sau:
https://www.instagram.com/oauth/authorize?client_id=97563852873&redirect_uri=https://my.m.redirect.net/&response_type=code&scope=business_basic%2Cbusiness_manage_messages%2Cbusiness_manage_comments%2Cbusiness_content_publish
Tại đây bạn sẽ phải thay sửa đổi các mục sau
client_id
: bạn sẽ lấy ở phần Thiết lập tính năng đăng nhập cho doanh nghiệp trên Instagramredirect_uri
scope
Ví dụ:
Mình sẽ tạo URL như sau:
https://www.instagram.com/oauth/authorize?client_id=1217870836116148&redirect_uri=https://anhptncc.github.io/batman/&response_type=code&scope=instagram_business_basic%2Cinstagram_business_manage_messages%2Cinstagram_business_manage_comments%2Cinstagram_business_content_publish
Nhập lên website, nhập tài khoản Instagram, chấp thuận truy cập quyền ứng dụng, Instagram sẽ trả lại 1 1 URL mới:
https://anhptncc.github.io/batman/?code=AQD5jC18yorWIDT1nAZtH-lGyzLjK8JG0WA6cb1PbaQqYFzRq7zdeyT023o8CP_MY579vzC3QCd9tamNfiWcAdBrjp6T_ya5aDwQEGaYlbyQ3X4f0Jit00McGkVWFlLrv6B_sh3kpLSdwXUHQrwqBjHNKS1OZYn1CE6TjDbj--jBjEy_Gk7wmaieT6IwcNeIeX_6XVymTxrauH3A4SMlVRumLRvQtlxC7vj4vGoohb-Tzw#_
Như các bạn thấy thì callback URL của mình sẽ có thêm 1 param code, nhưng khi lấy giá trị bạn nhớ bỏ “#_” ở cuối đi nhé, nghĩa là code của mình sẽ là:
AQD5jC18yorWIDT1nAZtH-lGyzLjK8JG0WA6cb1PbaQqYFzRq7zdeyT023o8CP_MY579vzC3QCd9tamNfiWcAdBrjp6T_ya5aDwQEGaYlbyQ3X4f0Jit00McGkVWFlLrv6B_sh3kpLSdwXUHQrwqBjHNKS1OZYn1CE6TjDbj--jBjEy_Gk7wmaieT6IwcNeIeX_6XVymTxrauH3A4SMlVRumLRvQtlxC7vj4vGoohb-Tzw
Bước 4: Đổi code lấy token
Bạn chỉ cần tạo 1 request truyền lên các params client_id, client_secret, grant_type, redirect_uri và quan trọng nhất là code vừa lấy được ở bên trên.
curl -X POST https://api.instagram.com/oauth/access_token \
-F 'client_id=<YOUR_INSTAGRAM_APP_ID>' \
-F 'client_secret=<YOUR_INSTAGRAM_APP_SECRET>' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=https://<YOUR_REDIRECT_URI>/' \
-F 'code=<CODE>'
Sau khi request thành công, bạn sẽ nhận được thứ quý giá nhất của 1 user, đó là access token
{
"data": [
{
"access_token": "<THE_ACCESS_TOKEN>",
"user_id": "<INSTAGRAM_APP_SCOPED_USER_ID>",
"permissions": "<LIST_OF_GRANTED_PERMISSIONS>"
}
]
}
Tuy nhiên, access token này chỉ có thời hạn là 1 ngày thôi, vì thế mà chúng ta sẽ phải làm thêm 1 bước nữa, đó là đổi sang long lived token
Bước 5: Lấy long-lived access token
Vẫn như trên, bạn sẽ tạo 1 request truyền lên grant_type, client_secret và access token vừa nhận được
curl -i -X GET "https://graph.instagram.com/access_token
?grant_type=ig_exchange_token
&client_secret=<YOUR_INSTAGRAM_APP_SECRET>
&access_token=<VALID_SHORT_LIVED_ACCESS_TOKEN>"
Và kết quả của request là
{
"access_token":"<LONG_LIVED_ACCESS_TOKEN>",
"token_type": "bearer",
"expires_in": 5183944 // Number of seconds until token expires
}
Với long-lived token sẽ có thời hạn lên tới 60 ngày, khi gần hết thời hạn bạn cần phải tạo 1 request refresh để lấy 1 long-lived token mới.
curl -i -X GET "https://graph.instagram.com/refresh_access_token
?grant_type=ig_refresh_token
&access_token=<LONG_LIVED_ACCESS_TOKEN>"
Vậy là kết thúc phần 1 mình đã hướng dẫn các bạn lấy được access token của 1 user instagram rồi đó, với access token này chúng ta có thể request được nhiều thông tin từ users, mình sẽ hướng dẫn tiếp ở phần 2 nhé.
Hướng dẫn sử dụng Instagram API với Instagram Login (phần 2) – coming soon