Bài viết trên Threads

Bạn có thể sử dụng API Threads để đăng bài viết có hình ảnh, bài viết có video, bài viết có văn bản hoặc bài viết quay vòng.

Tài liệu này bao gồm các nội dung sau:

Bài viết một thread

Quy trình đăng bài viết một hình ảnh/video/văn bản gồm 2 bước:

  1. Tạo vùng chứa file phương tiện chỉ có văn bản hoặc có hình ảnh/video được lưu trữ trên máy chủ công khai của bạn kèm theo văn bản không bắt buộc bằng điểm cuối POST /{threads-user-id}/threads
  2. Đăng vùng chứa file phương tiện bằng điểm cuối POST /{threads-user-id}/threads_publish.

Giới hạn

  • Bài viết có văn bản chỉ được dài tối đa 500 ký tự.
  • Biểu tượng cảm xúc được tính bằng số byte UTF-8.

Bước 1: Tạo vùng chứa file phương tiện trên Threads

Dùng điểm cuối POST /{threads-user-id}/threads để tạo một vùng chứa file phương tiện trên Threads.

Thông số

TênMô tả

is_carousel_item

Boolean

Bắt buộc.
Cho biết hình ảnh và/hoặc video sẽ xuất hiện trong thẻ quay vòng.

Giá trị:true, false (mặc định cho bài viết một thread)

media_type

chuỗi

Bắt buộc.
Cho biết loại file phương tiện hiện tại.

Giá trị:TEXT, IMAGE, VIDEO

Lưu ý:CAROUSEL không áp dụng cho bài viết một thread.

image_url

URL

Không bắt buộc. Bắt buộc đối với media_type=IMAGE.
Đường dẫn URL đến hình ảnh.

Lưu ý: Chúng tôi sẽ gửi hình ảnh của bạn trong yêu cầu cURL bằng URL được cung cấp. Vì thế, hình ảnh đó phải có trên máy chủ công khai.

video_url

URL

Không bắt buộc. Bắt buộc đối với media_type=VIDEO.
Đường dẫn URL đến video.

Lưu ý: Chúng tôi sẽ gửi video của bạn trong yêu cầu cURL bằng URL được cung cấp. Vì thế, video đó phải có trên máy chủ công khai.

text

chuỗi

Không bắt buộc. Bắt buộc đối với media_type=TEXT.
Văn bản liên kết với bài viết. Nếu có bất kỳ URL nào được đưa vào, URL đầu tiên trong trường text sẽ được dùng làm bản xem trước liên kết cho bài viết.

Lưu ý: Đối với giới hạn ký tự của bài viết, biểu tượng cảm xúc được tính bằng số byte UTF-8.

Hãy xem POST /{threads-user-id}/threadstài liệu tham khảo về điểm cuối để biết thêm các thông số được hỗ trợ.

Yêu cầu mẫu

curl -i -X POST \ -d "media_type=IMAGE" \ -d "image_url=<IMAGE_URL>" \ -d "text=<TEXT>" \ -d "access_token=<ACCESS_TOKEN>" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"

Phản hồi mẫu

{
  "id": "<THREADS_MEDIA_CONTAINER_ID>"
}

Bước 2: Đăng vùng chứa file phương tiện trên Threads

Dùng điểm cuối POST /{threads-user-id}/threads_publish để đăng ID vùng chứa file phương tiện được trả về ở bước trước.

Bạn nên chờ trung bình 30 giây rồi mới đăng vùng chứa file phương tiện trên Threads để máy chủ của chúng tôi có đủ thời gian xử lý xong quá trình tải lên. Hãy xem phần điểm cuối trạng thái vùng chứa file phương tiện để biết thêm chi tiết.

Thông số

TênMô tả

creation_id

số nguyên

Bắt buộc.
ID vùng chứa file phương tiện trên Threads.

Yêu cầu mẫu

curl -i -X POST \ -d "creation_id=<MEDIA_CONTAINER_ID>" \ -d "access_token=<ACCESS_TOKEN>" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads_publish"

Phản hồi mẫu

{
  "id": "<THREADS_MEDIA_ID>"
}

Bài viết quay vòng

Bạn có thể đăng tối đa 20 hình ảnh, video hoặc kết hợp cả hai trong một bài viết quay vòng. Quy trình đăng thẻ quay vòng gồm 3 bước:

  1. Tạo vùng chứa file phương tiện riêng cho từng hình ảnh và video sẽ xuất hiện trong thẻ quay vòng bằng điểm cuối POST /{threads-user-id}/threads.
  2. Tạo một vùng chứa thẻ quay vòng để chứa các vùng chứa file phương tiện bằng điểm cuối POST /{threads-user-id}/threads.
  3. Đăng vùng chứa thẻ quay vòng bằng điểm cuối POST /{threads-user-id}/threads_publish.

Lưu ý: Bài viết quay vòng được tính là một bài viết theo giới hạn tốc độ của trang cá nhân.

Giới hạn

  • Thẻ quay vòng chỉ được chứa tối đa 20 hình ảnh, video hoặc kết hợp cả hai.
  • Thẻ quay vòng phải chứa ít nhất 2 mục.

Bước 1: Tạo vùng chứa file phương tiện

Dùng điểm cuối POST /{threads-user-id}/threads để tạo một vùng chứa file phương tiện cho từng hình ảnh và/hoặc video sẽ xuất hiện trong thẻ quay vòng.

Thông số

TênMô tả

is_carousel_item

Boolean

Bắt buộc.
Cho biết hình ảnh và/hoặc video sẽ xuất hiện trong thẻ quay vòng khi đặt thành true.

Giá trị:true, false

media_type

chuỗi

Bắt buộc.
Cho biết loại file phương tiện hiện tại.

Giá trị:IMAGE, VIDEO

Lưu ý:CAROUSEL không áp dụng cho bài viết một thread.

image_url

URL

Không bắt buộc. Bắt buộc đối với media_type=IMAGE.
Đường dẫn URL đến hình ảnh.

Lưu ý: Chúng tôi sẽ gửi hình ảnh của bạn trong yêu cầu cURL bằng URL được cung cấp. Vì thế, hình ảnh đó phải có trên máy chủ công khai.

video_url

URL

Không bắt buộc. Bắt buộc đối với media_type=VIDEO.
Đường dẫn URL đến video.

Lưu ý: Chúng tôi sẽ gửi video của bạn trong yêu cầu cURL bằng URL được cung cấp. Vì thế, video đó phải có trên máy chủ công khai.

text

chuỗi

Không bắt buộc.
Văn bản liên kết với bài viết. Nếu có bất kỳ URL nào được đưa vào, URL đầu tiên trong trường text sẽ được dùng làm bản xem trước liên kết cho bài viết.

Lưu ý: Đối với giới hạn ký tự của bài viết, biểu tượng cảm xúc được tính bằng số byte UTF-8.

Hãy xem POST /{threads-user-id}/threadstài liệu tham khảo về điểm cuối để biết thêm các thông số được hỗ trợ.

Yêu cầu mẫu

curl -i -X POST \ -d "image_url=<IMAGE_URL>" \ -d "is_carousel_item=true" \ -d "access_token=<ACCESS_TOKEN>" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"

Phản hồi mẫu

{
  "id": "<THREADS_MEDIA_CONTAINER_ID>"
}

Nếu thao tác này thành công, API sẽ trả về một ID vùng chứa file phương tiện mà bạn có thể dùng khi tạo vùng chứa thẻ quay vòng.

Lặp lại quy trình này cho từng hình ảnh và/hoặc video sẽ xuất hiện trong thẻ quay vòng.

Bước 2: Tạo vùng chứa thẻ quay vòng

Dùng điểm cuối POST /{threads-user-id}/threads để tạo một vùng chứa thẻ quay vòng.

Thông số

TênMô tả

media_type

chuỗi

Bắt buộc.
Cho biết loại file phương tiện hiện tại.

Giá trị:CAROUSEL

children

danh sách<int>

Bắt buộc.
Danh sách được phân tách bằng dấu phẩy gồm các ID vùng chứa file phương tiện của hình ảnh và/hoặc video sẽ xuất hiện trong thẻ quay vòng đã đăng.

Lưu ý: Thẻ quay vòng phải có tổng cộng từ 2-20 hình ảnh, video hoặc cả hai loại.

text

chuỗi

Không bắt buộc.
Văn bản liên kết với bài viết.

Hãy xem POST /{threads-user-id}/threadstài liệu tham khảo về điểm cuối để biết thêm các thông số được hỗ trợ.

Yêu cầu mẫu

curl -i -X POST \ -d "media_type=CAROUSEL" \ -d "children=<MEDIA_ID_1>,<MEDIA_ID_2>,<MEDIA_ID_3>,..." \ -d "access_token=<ACCESS_TOKEN>" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"

Phản hồi mẫu

{
  "id": "<THREADS_CAROUSEL_CONTAINER_ID>"
}

Bước 3: Đăng vùng chứa thẻ quay vòng

Dùng điểm cuối POST /{threads-user-id}/threads_publish để đăng bài viết quay vòng.

Lưu ý: Mỗi trang cá nhân chỉ có thể đăng tối đa 250 bài viết trong vòng 24 giờ. Mỗi lần đăng thẻ quay vòng được tính là một bài viết.

Thông số

TênMô tả

creation_id

số nguyên

Bắt buộc.
ID vùng chứa thẻ quay vòng trên Threads.

Yêu cầu mẫu

curl -i -X POST \ -d "creation_id=<MEDIA_CONTAINER_ID>" \ -d "access_token=<ACCESS_TOKEN>" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads_publish"

Phản hồi mẫu

{
  "id": "<THREADS_MEDIA_ID>"
}

Nếu thao tác này thành công, API sẽ trả về ID file phương tiện trên Threads của album quay vòng.

Thẻ chủ đề, liên kết và ảnh GIF

Chủ đề và liên kết xuất hiện trong bài viết theo cách thúc đẩy lượt tương tác.

Thẻ chủ đề

Chủ đề giúp bài viết mang tính xã hội hơn bằng cách tạo ra các chủ đề thảo luận tập trung. Bạn có thể thêm chủ đề vào bài viết bằng cách sử dụng thông số topic_tag hoặc thêm thẻ trong văn bản của bài viết.

Dùng thông số topic_tag

Lưu ý: Thẻ chủ đề phải chứa từ 1-50 ký tự. Không cho phép các ký tự sau:

  • Dấu chấm (.)
  • Dấu &
Yêu cầu mẫu
curl -i -X POST \ -d "media_type=TEXT" \ -d "text=<Text>" \ -d "access_token=<ACCESS_TOKEN>" \ -d "topic_tag=<TAG>" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"

Dùng thẻ chủ đề trong văn bản

Phương thức này không được ưu tiên nhưng được giữ lại để đảm bảo khả năng tương thích ngược.

Bạn cũng có thể đính kèm một chủ đề vào bài viết bằng cách chèn trực tiếp vào văn bản của bài viết. Chỉ cho phép một thẻ chủ đề trên mỗi bài viết. Vì thế, thẻ hợp lệ đầu tiên mà bạn thêm vào một bài viết thuộc loại bất kỳ (chỉ có văn bản, có hình ảnh, có video, quay vòng) qua API sẽ được xem là thẻ của bài viết đó.

Thông tin cần lưu ý khi thêm thẻ chủ đề vào bài viết bằng cách sử dụng thẻ trong văn bản:

  • Thẻ hợp lệ bắt đầu bằng dấu thăng (#).
  • Bạn cũng có thể đặt cấu hình văn bản trong ứng dụng mà không cần dấu thăng.
  • Chủ đề phải có từ 1-50 ký tự.
  • Dấu thăng mà có số nguyên đứng sau (ví dụ: #1) sẽ không được chuyển thành thẻ. Vì trong trường hợp này, hệ thống giả định rằng # biểu thị một dấu số.
  • Bạn không được phép sử dụng các ký tự dưới đây khi dùng thẻ trong văn bản với API Threads. Vì vậy, bất kỳ thẻ trong văn bản nào bắt đầu bằng dấu thăng đều sẽ kết thúc trước những ký tự này:

    • Khoảng trắng, tab và ký tự xuống dòng
    • Dấu chấm (.)
    • Dấu &
    • Dấu a còng (@)
    • Dấu chấm than (!)
    • Dấu hỏi chấm (?)
    • Dấu phẩy (,)
    • Dấu chấm phẩy (;)
    • Dấu hai chấm (:)

Liên kết

Để đính kèm liên kết vào bài viết của bạn, hãy dùng thông số link_attachment khi tạo vùng chứa file phương tiện. Nếu không cung cấp thông số link_attachment, liên kết đầu tiên mà bạn tạo trong bài viết chỉ có văn bản qua API sẽ được đặt cấu hình làm file đính kèm liên kết (hiển thị dưới dạng thẻ xem trước) giúp tương tác và nhấp vào dễ dàng hơn.

Giới hạn

  • Tính năng này dành riêng cho bài viết chỉ có văn bản, chứ không dùng được với bài viết có hình ảnh, video hoặc thẻ quay vòng.

Đăng

Bạn có thể đính kèm liên kết khi thực hiện lệnh gọi API đến điểm cuối POST /{threads-user-id}/threads để tạo vùng chứa file phương tiện.

TênMô tả

link_attachment

URL

Không bắt buộc.
URL sẽ được đính kèm vào bài viết trên Threads và hiển thị dưới dạng bản xem trước liên kết. URL phải hợp lệ và có thể truy cập công khai.

Lưu ý: Chỉ dùng cho bài viết có media_type=TEXT.

Yêu cầu mẫu
curl -i -X POST \ -d "media_type=TEXT" \ -d "text=<TEXT>" \ -d "access_token=<ACCESS_TOKEN>" \ -d "link_attachment=<URL> \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"
Phản hồi mẫu
{
  "id": "<THREADS_MEDIA_CONTAINER_ID>"
}

Yêu cầu ở trên sẽ tạo một vùng chứa file phương tiện trên Threads. Sau khi được đăng, vùng chứa này sẽ đính kèm bản xem trước liên kết vào file phương tiện của bạn.

Truy xuất file phương tiện

Bạn có thể truy xuất giá trị của URL link_attachment bằng cách tạo yêu cầu đến điểm cuối GET /threads hoặc GET /{threads_media_id} để truy xuất (các) đối tượng file phương tiện.

TênMô tả

link_attachment_url

URL

URL được đính kèm vào một bài viết trên Threads.

Yêu cầu mẫu
curl -s -X GET \ "https://graph.threads.net/v1.0/<THREADS_MEDIA_ID>?fields=id,link_attachment_url&access_token=<ACCESS_TOKEN>"
Phản hồi mẫu
{
   "id": "<THREADS_MEDIA_ID>",
   "link_attachment_url": "<LINK_ATTACHMENT_URL>",
}

Ảnh GIF

Bài viết sẽ trở nên hấp dẫn hơn khi có ảnh GIF, vì người dùng có thể bày tỏ cảm xúc, cảm giác hoặc ý tưởng một cách trực quan.

Giới hạn

  • Tính năng này dành riêng cho bài viết chỉ có văn bản, chứ không dùng được cho bài viết có hình ảnh, video hoặc thẻ quay vòng.
  • Tenor hiện là nhà cung cấp ảnh GIF duy nhất.

Đăng

Bạn có thể đính kèm ảnh GIF khi thực hiện lệnh gọi API đến điểm cuối POST /{threads-user-id}/threads để tạo vùng chứa file phương tiện.

TênMô tả

gif_attachment

đối tượng

Không bắt buộc.
Nhà cung cấp ảnh GIF và ID để đính kèm ảnh GIF vào bài viết.

Trường thông tin:gif_id, provider

Yêu cầu mẫu
curl -i -X POST \ -d "media_type=TEXT" \ -d "text=<Text> \ -d "access_token=<ACCESS_TOKEN>" \ -d "gif_attachment={"gif_id":"<GIF_ID>","provider":"TENOR"}" \ "https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"

Lưu ý: Giá trị của trường id mà bạn nhận được từ phản hồi API Tenor sẽ được dùng làm <GIF_ID> trong lệnh gọi API.

Phản hồi mẫu
{
 "id": "<THREADS_MEDIA_ID>"
}

Yêu cầu ở trên sẽ tạo một vùng chứa file phương tiện trên Threads. Một khi được đăng, vùng chứa này sẽ đính kèm ảnh GIF vào file phương tiện của bạn.

Quy cách file phương tiện

Quy cách hình ảnh

  • Định dạng: Loại hình ảnh JPEG và PNG là định dạng được hỗ trợ chính thức cho bài viết có hình ảnh.
  • Kích thước file: Tối đa 8MB.
  • Giới hạn tỷ lệ khung hình: 10:1
  • Chiều rộng tối thiểu: 320 (sẽ được tăng tỷ lệ lên mức tối thiểu nếu cần)
  • Chiều rộng tối đa: 1440 (sẽ được giảm tỷ lệ xuống mức tối đa nếu cần)
  • Chiều cao: Thay đổi (tùy theo chiều rộng và tỷ lệ khung hình)
  • Không gian màu: sRGB. Các hình ảnh sử dụng không gian màu khác sẽ được chuyển đổi sang không gian màu sRGB.

Quy cách video

  • Vùng chứa: MOV hoặc MP4 (MPEG-4 Phần 14), không có danh sách chỉnh sửa, phần moov atom nằm ở đầu file.
  • Codec âm thanh: AAC, tần số mẫu tối đa 48khz, 1 hoặc 2 kênh (đơn âm hoặc âm thanh nổi).
  • Codec video: HEVC hoặc H264, quét lũy tiến, GOP (nhóm ảnh) kín, lấy mẫu phụ sắc độ 4:2:0.
  • Tốc độ khung hình: 23-60 khung hình/giây
  • Kích thước ảnh:
    • Số cột tối đa (điểm ảnh ngang): 1.920
    • Tỷ lệ khung hình bắt buộc nằm trong khoảng từ 0,01:1 đến 10:1. Tuy nhiên, bạn nên sử dụng tỷ lệ 9:16 để tránh bị cắt hoặc có khoảng trống.
  • Tốc độ bit của video: VBR, tối đa 100 Mb/giây.
  • Tốc độ bit của âm thanh: 128 kb/giây.
  • Thời lượng: Tối đa 300 giây (5 phút), tối thiểu dài hơn 0 giây.
  • Kích thước file: Tối đa 1GB.