Hướng dẫn sử dụng Instagram API với Instagram Login (phần 2)

4 min read

phần 1 mình đã hướng dẫn các bạn cách lấy access token của user, trong phần 2 này mình sẽ hướng dẫn các bạn cách sử dụng token để lấy được những thông tin cơ bản của user nhé

1. Lấy dữ liệu User

Để lấy được những thông tin cơ bản của User, chúng ta chỉ cần tạo 1 request đến /me cùng với các params sau:

  • fields: các thông tin bạn muốn lấy từ user, ví dụ như user_id, username…
  • access_token

Hãy cùng mình tạo thử 1 request nhé:

curl -i -X GET \
 "https://graph.instagram.com/v20.0/me
      ?fields=user_id,username
      &access_token=Ealkdfj..."

Và kết quả thu được sau khi request qua Postman

Thật đơn giản phải không nào, ngoài ra các bạn còn có thể request những thông tin khác của user, mình sẽ liệt kê dưới đây:

idid trên ứng dụng
user_idid của tài khoản
usernameInstagram username
nametên của user
account_typeloại tài khoản
profile_picture_urllink ảnh đại diện của user
followers_countsố lượng người follow
follows_countsố lượng người user đang follow
media_countsố lượng các bài post

2. Lấy dữ liệu Medias

Trong trường hợp các bạn muốn lấy các bài post của user để có thể custom 1 feature gì đó, ví dụ như ứng dụng Grid Maker for Instagram – ứng dụng này cho phép user chỉnh sửa ảnh dạng lưới, chia bố cục giống như bố cục trên instagram vậy, và sau đó user có thể đăng ảnh lên Instagram bằng ứng dụng này.

Để request được dữ liệu Medias các bạn tạo 1 request:

https://graph.instagram.com/v20.0/me/media?access_token=adas897812....&fields=caption, username

Kết quả mình lấy được như sau:

Đối với Media, các bạn có thể lấy được rất nhiều dữ liệu, mình sẽ liệt kê dưới đây nhé:

captionChú thích
comments_countSố bình luận trên file phương tiện.
idID file phương tiện.
is_comment_enabledCho biết bình luận được bật hay bị tắt.
is_shared_to_feedChỉ dành cho Thước phim. Khi giá trị là true, thước phim sẽ hiển thị trong cả tab Bảng feed lẫn tab Reels. Khi giá trị là false, thước phim chỉ có thể hiển thị trong tab Reels.
like_countSố lượt thích
media_product_typeGiao diện đăng file phương tiện. Có thể là ADFEEDSTORY hoặc REELS.
media_typeLoại file phương tiện. Có thể là CAROUSEL_ALBUMIMAGE hoặc VIDEO.
media_urlURL của file phương tiện.
ownerID của người dùng Instagram đã tạo file phương tiện.
permalinkURL vĩnh viễn của file phương tiện.
shortcodeMã rút ngắn của file phương tiện.
thumbnail_urlURL hình thu nhỏ của file phương tiện. Chỉ có trên file phương tiện VIDEO.
timestampNgày tạo ở định dạng theo tiêu chuẩn ISO
usernameTên người dùng đã tạo file phương tiện.

3. Content Publishing

Một trong những tính năng cực kì hữu dụng đó là publish ảnh, video, reel lên trang cá nhân của user. Lưu ý là chỉ áp dụng cho Instagram professional accounts nha.

Single media posts

Để có thể đăng bài viết gồm 1 ảnh, 1 video hay 1 story, gồm 2 bước

Bước 1: Tạo media container

Ví dụ bạn muốn đăng 1 bức ảnh lên Instagram: https://www.example.com/images/bronz-fonz.jpg

Bạn hãy tạo 1 request như sau, nhớ truyền cả access token nha.

curl -X POST "https://graph.instagram.com/v20.0/<IG_ID>/media"
     -H "Content-Type: application/json" 
     -d '{
           "image_url":"https://www.example.com/images/bronz-fonz.jpg"
         }'

Request thành công sẽ tạo 1 container, đó là nơi ảnh sẽ được lưu trữ:

{
  "id": "17889455560051444"  // Instagram Container ID
}

Bước 2: Publish container

Bước này thì khá đơn giản, bạn chỉ cần tạo request kèm container id là được rồi đó

curl -X POST "https://graph.instagram.com/v20.0/17841400008460056/media_publish"
     -H "Content-Type: application/json" 
     -d '{
           "creation_id=17889455560051444"
         }'

Thành công, sẽ trả về id của media nha

{
  "id": "17920238422030506" // Instagram Media ID
}

Carousel posts

Bạn có thể đăng tối đa 10 hình ảnh, video hoặc kết hợp cả hai trong một bài đăng (bài đăng dạng carousel). Bao gồm 3 bước:

Bước 1: Tạo media container

Ví dụ bạn muốn đăng 5 bước ảnh, thì bạn sẽ phải tạo 5 request như dưới đây:

curl -X POST "https://graph.instagram.com/v20.0/90010177253934/media"
     -H "Content-Type: application/json" 
     -d '{
           "image_url":"https://www.example.com/images/bronz-fonz.jpg",
           "is_carousel_item":"true"
         }'

Mỗi request sẽ trả về 1 container id, nơi mà đang lưu trữ ảnh của bạn, bạn nhớ lưu lại 5 ID này nhé

{
  "id": "17889455560051444"  // Instagram Container ID
}

Bước 2: Tạo carousel container

Tạo request dưới đây, điền caption, bạn lưu ý media_type phải là CAROUSEL nhé, và quan trọng nhất là trong children bạn hãy điền 5 ID vừa tạo bên trên, cách nhau bằng dấu phẩy nhé.

curl -X POST "https://graph.instagram.com/v20.0/90010177253934/media"
     -H "Content-Type: application/json" 
     -d '{  
           "caption":"Fruit%20candies"
           "media_type":"CAROUSEL"
           "children":"17899506308402767,18193870522147812,17853844403701904"
         }'

Khi thành công bạn sẽ nhận được 1 carousel container id. Hiện tại trạng thái đang là unpublished nhé. Để có thể hiển thị trên Instagram bạn cần 1 bước nữa.

{
  "id": "18000748627392977" // INSTAGRAM Carousel Container ID
}

Bước 3: Publish carousel container

Tạo request truyền Carousel Container ID bên trên, vậy là bạn đã đăng thành công rồi đó.

curl -X POST "https://graph.instagram.com/v20.0/90010177253934/media_publish"
     -H "Content-Type: application/json" 
     -d '{  
           "creation_id":"18000748627392977"
         }'

Vậy là mình đã hướng dẫn các bạn cách lấy thông tin của user, lấy các media của user và cách đăng bài viết lên trang Instagram qua Instagram API rồi đó.

Chúc các bạn có thể áp dụng trong ứng dụng của mình nhé!!!

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

Your email address will not be published. Required fields are marked *