Chuyển đến nội dung chính
Endpoint post cho phép bạn xuất bản bài đăng đến các mạng xã hội: Bluesky, Facebook, Google Business Profile, Instagram, LinkedIn, Pinterest, Reddit, Snapchat, Telegram, TikTok, X/Twitter, và YouTube. Có nhiều tùy chọn để tùy chỉnh bài đăng của bạn, chẳng hạn như lên lịch bài đăng, thêm auto hashtag, lịch đăng tự động, và nhiều hơn nữa. Thường được các agency sử dụng khi nhiều bên liên quan cần phê duyệt bài đăng trước khi nó được xuất bản. Bắt đầu xuất bản bài đăng với endpoint POST /post.

Quy trình phê duyệt

Nếu quy trình xuất bản của bạn yêu cầu phê duyệt trước khi gửi bài đăng, hãy đặt trường requiresApproval thành true. Điều này tương đương với việc tạm dừng bài đăng cho đến khi tham số approved được đặt thành true.

Ví dụ quy trình phê duyệt

Bài đăng sẽ có trạng thái “awaiting approval” cho đến khi tham số approved được đặt thành true qua endpoint PATCH /post.
1

Xuất bản với các tham số

Xuất bản bài đăng của bạn bằng endpoint /post với trường requiresApprovaltrue. Bạn cũng có thể bao gồm các tham số tiêu chuẩn như scheduleDate.
2

Trạng thái là awaiting approval

Bài đăng sẽ ở trạng thái “awaiting approval” và sẽ được giữ lại cho đến khi được phê duyệt.
3

Phê duyệt bài đăng

Cập nhật bài đăng bằng thao tác PATCH /post đặt trường approved thành true. Bài đăng bây giờ sẽ được gửi vào thời điểm đã lên lịch.
4

Sử dụng ghi chú

Tùy chọn: Đặt notes trên bài đăng để tham khảo, chẳng hạn như ai cần phê duyệt bài đăng.
Publish the Post with Approval
Nếu scheduleDate được bao gồm và ngày ở trong quá khứ, bài đăng sẽ được xuất bản ngay lập tức khi được phê duyệt.

Video quy trình phê duyệt

Vui lòng xem video bên dưới để có ví dụ về quy trình phê duyệt.

Auto Hashtag

Thêm các hashtag phù hợp nhất vào bài đăng của bạn. autoHashtag là một đối tượng, hoặc Boolean - xem bên dưới, với các tham số sau:
  • max: (tùy chọn) Integer số hashtag để thêm, phạm vi 1-10. Mặc định 2.
  • position: (tùy chọn) String “auto” hoặc “end”. Auto thêm hashtag trong bài đăng hoặc ở cuối. “end” thêm hashtag chỉ ở cuối.
Yêu cầu gói trả phí.
Nếu bạn không muốn gửi bất kỳ tùy chọn nào ở trên, hãy truyền giá trị Boolean true thay vì một đối tượng.

Auto Repost

Tự động đăng lại nội dung của bạn nhiều lần vào các khoảng thời gian đều đặn, tạo ra nội dung evergreen luôn tươi mới và hiển thị với đối tượng của bạn. Yêu cầu gói trả phí. Tham số:
  • repeat: (bắt buộc) Số lần đăng lại nội dung. Phải nằm trong khoảng từ 1 đến 10.
  • days: (bắt buộc) Số ngày giữa mỗi lần đăng lại. Phải ít nhất 2 ngày.
  • startDate: (tùy chọn) Khi nào bắt đầu lịch đăng lại, ở định dạng ISO-8601 UTC. Nếu không được chỉ định, bài đăng đầu tiên sẽ được xuất bản ngay lập tức. Bạn nên sử dụng tham số startDate thay cho tham số scheduleDate cấp cao nhất.
Auto Repost
Phản hồi sẽ bao gồm tất cả các lần đăng lại đã lên lịch trong tương lai và một autoRepostId cho mỗi lần đăng lại.
Auto Repost Response
Khi tạo auto repost, một ID autoRepostId được gán để theo dõi chuỗi bài đăng đó. Bạn có thể lấy tất cả các auto reposts cho một bài đăng với lệnh gọi History với autoRepostId. Nếu bạn cần xóa một repost, bạn có thể sử dụng lệnh gọi DELETE với post ID.
Quan trọng: Khi sử dụng auto-repost, hãy đảm bảo bạn tuân theo hướng dẫn tần suất đăng bài của mỗi mạng xã hội để tránh các hạn chế tài khoản.Lưu ý: Tính năng autoRepost không thể được sử dụng cùng với scheduleDate. Nếu bạn bao gồm cả hai tham số, scheduleDate sẽ được ưu tiên và autoRepost sẽ bị bỏ qua. Vui lòng sử dụng tham số startDate thay thế.

Bình luận đầu tiên (First Comment)

Tự động thêm bình luận đầu tiên, kèm phương tiện, sau khi bài đăng được xuất bản. Đối với TikTok, bình luận bị hoãn cho đến khi video hoàn tất xử lý (xem Thời gian xử lý bình luận đầu tiên). Đăng bình luận đầu tiên trên bài đăng mạng xã hội của riêng bạn có thể giúp khởi động sự tương tác và tạo âm hưởng cho cuộc thảo luận tiếp theo.

Thời gian xử lý bình luận đầu tiên

Đối với hầu hết các mạng xã hội, phản hồi API bị trì hoãn vì hệ thống của chúng tôi phải (1) đợi bài đăng gốc được xuất bản hoàn toàn, sau đó (2) thêm bình luận vào bài đăng đã xuất bản đó. Quá trình tuần tự này thêm một độ trễ khoảng 20 giây. TikTok được xử lý khác. TikTok xử lý video không đồng bộ, vì vậy id bài đăng là "pending" cho đến khi webhook post.publish.publicly_available của TikTok giải quyết id video thực (xem Xử lý TikTok). Do đó, phản hồi /post trả về bình luận đầu tiên TikTok với status: "pending" ngay lập tức, và bình luận được đăng tự động khi TikTok hoàn tất xử lý và webhook Scheduled Action tikTokPublished kích hoạt. TikTok không đảm bảo thời gian xử lý, vì vậy không có độ trễ cố định. Lưu ý quan trọng về TikTok: Để bình luận đầu tiên hoạt động đúng cách trên TikTok, tham số visibility của bài đăng phải được đặt thành public. Một video không công khai không bao giờ nhận được webhook publicly_available, vì vậy bình luận đầu tiên của nó không thể được đăng; trong trường hợp đó Ayrshare trả về lỗi bình luận thay vì để nó ở trạng thái pending.

Bài đăng Idempotent

Idempotency là một tính năng tùy chọn đảm bảo một yêu cầu chỉ được thực thi một lần, ngay cả khi nó vô tình được gửi nhiều lần. Khi đăng nội dung bằng API, bạn có thể bao gồm một tham số idempotencyKey tùy chọn trong body yêu cầu để nhận dạng thao tác một cách duy nhất. Điều này cho phép bạn thử lại yêu cầu đăng bài an toàn mà không có rủi ro tạo ra các bài đăng trùng lặp. Để sử dụng idempotency, hãy thêm tham số idempotencyKey vào body JSON của yêu cầu POST /post:
Idempotency Key
Giá trị của idempotencyKey phải là một chuỗi duy nhất cho mỗi User Profile. Nếu một yêu cầu được thực hiện với cùng một idempotencyKey cho một User Profile nhất định, bất kể trạng thái của bài đăng (success, error, pending, hoặc deleted), một lỗi sẽ được trả về, cho biết đã tìm thấy khóa trùng lặp.
API trước tiên phải chấp nhận và xử lý yêu cầu POST để lưu trữ idempotency key và kiểm tra trùng lặp. Tuy nhiên, nếu nhiều yêu cầu POST với cùng idempotencyKey được gửi đồng thời hoặc được lên lịch cùng một thời gian đăng bài, API có thể không phát hiện được các khóa trùng lặp. Điều này là do API xử lý các yêu cầu đồng thời hoặc được lên lịch đồng thời này song song, trước khi nó có cơ hội đăng ký idempotency key từ bất kỳ yêu cầu nào. Kết quả là, không có gì đảm bảo rằng các khóa idempotent trùng lặp sẽ bị bắt trong các trường hợp gửi hoặc thực thi đồng thời các bài đăng đã lên lịch.
Sử dụng idempotency giúp ngăn chặn việc tạo ra các bài đăng trùng lặp vô ý khi thử lại các yêu cầu thất bại hoặc xử lý các vấn đề về mạng. Tuy nhiên, vẫn nên triển khai xử lý lỗi phù hợp và các cơ chế thử lại trong ứng dụng của bạn để xử lý các thất bại tiềm ẩn một cách nhẹ nhàng.

Yêu cầu hình ảnh & video

Đăng hình ảnh và video có các yêu cầu khác nhau cho mỗi mạng, nhưng đừng lo. Hệ thống của chúng tôi xác minh bài đăng của bạn trước khi gửi, vì vậy bạn sẽ nhận được phản hồi lỗi nếu có gì đó không ổn. Xem liên kết bên dưới để biết chi tiết về hướng dẫn hình ảnh và video.

Image & Video Guidelines

URL hợp lệ

Hãy đảm bảo (các) URL phương tiện của bạn hợp lệ và truy cập trực tiếp phương tiện. Kiểm tra đầu tiên là thử URL trong trình duyệt. Nếu hình ảnh không tải được hoặc không thể tải xuống trong trình duyệt, nó có thể sẽ thất bại. Ví dụ, một URL DropBox mở ứng dụng web DropBox sẽ không hoạt động.
Nếu bạn có URL chia sẻ Google Drive hoặc URL chia sẻ Dropbox, bạn có thể chỉ cần sử dụng URL trong tham số mediaUrls khi xuất bản bài đăng hoặc bình luận. Ayrshare sẽ tự động chuyển đổi URL chia sẻ thành liên kết tải xuống.
Chúng tôi xác minh URL phương tiện bằng cách thực hiện yêu cầu HEAD. Vui lòng đảm bảo nhà cung cấp lưu trữ không chặn yêu cầu HEAD hoặc bài đăng sẽ thất bại với lỗi 403. Ví dụ, đây là yêu cầu HEAD đến URL phương tiện:
Fetch HEAD Request

Bảo vệ phương tiện tự động

Ayrshare bao gồm tính năng bảo vệ phương tiện tích hợp có thể phát hiện và giải quyết một số vấn đề giao nhận phương tiện trong quá trình đăng bài. Khi một bài đăng thành công nhưng đã phát hiện và giải quyết được một vấn đề nội dung, mỗi mục nhập bị ảnh hưởng trong postIds[] bao gồm một đối tượng contentIssues tùy chọn để bạn có thể xác định và khắc phục vấn đề cơ bản:
Nếu bạn thấy originMediaHostFailed trong phản hồi của mình, hãy xem lại cấu hình lưu trữ phương tiện của bạn. Xem Meta Media Crawler Blocked để biết các nguyên nhân và giải pháp phổ biến.

Khoảng trắng & ký tự đặc biệt

Chúng tôi khuyến nghị tránh những điều sau trong URL phương tiện của bạn:
  • Khoảng trắng trong URL.
  • Khoảng trắng được mã hóa URL trong URL.
  • Ký tự đặc biệt trong URL ngay cả khi chúng được mã hóa url, chẳng hạn như dấu trọng âm é.
Ví dụ:
URL này thất bại vì khoảng trắng test .webp. Chúng tôi cũng không khuyến nghị sử dụng khoảng trắng được mã hóa URL, chẳng hạn như %20 trong URL - điều này cũng có thể gây ra vấn đề với một số mạng xã hội. Và hình ảnh Unsplash này:
Hình ảnh Unsplash này thất bại vì nó không truy cập trực tiếp hình ảnh, mà đang hiển thị một ứng dụng web.

Làm sạch tên file & URL

Bạn có thể làm sạch tên file của mình bằng biểu thức chính quy như /[^a-z0-9\/\.]/gi.
hoặc làm sạch một URL

Thông tin bổ sung

  • Nếu bạn đang tự lưu trữ, hãy đảm bảo URL có thể được truy cập bên ngoài và không yêu cầu quyền đặc biệt.
  • Xem bên dưới về cách xử lý video có phần mở rộng không rõ, thường là URL đã ký như AWS S3.
  • Nếu bạn đang sử dụng URL đã ký, chẳng hạn như S3, chúng tôi khuyến nghị đặt thời hạn URL ít nhất 7 ngày. Điều này cho phép nhóm của chúng tôi hỗ trợ với bất kỳ câu hỏi nào bạn có về việc xuất bản bài đăng.
  • Kiểm tra xem URL phương tiện có tồn tại hay không với công cụ xác minh phương tiện của chúng tôi.

Tốc độ tải xuống

Hãy đảm bảo lưu trữ phương tiện của bạn có kết nối nhanh, đặc biệt là tốc độ tải xuống. Bạn có thể kiểm tra hiệu suất lưu trữ phương tiện của mình tại pingdom. Chúng tôi khuyến nghị ít nhất xếp hạng B.

Phần mở rộng video

Nếu URL của bạn không kết thúc bằng phần mở rộng video đã biết như mp4, bạn có thể sử dụng trường isVideo: true trong bài đăng để chỉ định mediaUrl là video. Ayrshare sẽ cố gắng xác định loại file, chẳng hạn như MOV. Tuy nhiên, chúng tôi khuyến nghị kết thúc file video một cách rõ ràng với phần mở rộng đã biết, chẳng hạn như mp4, vì điều này có tỷ lệ thành công cao hơn với các mạng xã hội.

Chỉ hình ảnh hoặc video

Một số mạng xã hội hỗ trợ gửi phương tiện mà không có nội dung bài đăng. Nếu bạn không muốn bao gồm nội dung bài đăng, hãy gửi một chuỗi rỗng: post: "" Các mạng xã hội sau hỗ trợ không có nội dung/văn bản trống: Facebook, Instagram, LinkedIn, Threads, TikTok, và X/Twitter.

Kiểm thử hình ảnh và video

Hãy cân nhắc sử dụng tạo văn bản ngẫu nhiên và hình ảnh hoặc video ngẫu nhiên để tăng tốc quá trình kiểm thử của bạn. Đừng cố nghĩ ra điều gì đó khác biệt cho mỗi bài đăng kiểm thử!

Ngắt dòng

Nếu bạn muốn có ngắt dòng (dòng mới) trong bài đăng, hãy sử dụng ngắt dòng vô hình \u2063\n. Ví dụ, This is a new\u2063\nline.Chúng tôi cũng khuyến nghị thử trong Postman để xem cách ngắt dòng mới được dịch trong ngôn ngữ bạn chọn. Ví dụ, PHP thường chỉ sử dụng \nMột số mạng xã hội hiện không hỗ trợ ngắt dòng trong nội dung bài đăng.

Bài đăng đa nền tảng và phương tiện

Tính năng này cho phép bạn tùy chỉnh nội dung bài đăng và phương tiện cho các mạng xã hội khác nhau trong một lệnh gọi API duy nhất. Bạn có thể chỉ định văn bản và/hoặc hình ảnh duy nhất cho mỗi nền tảng bằng cách sử dụng các đối tượng cho trường postmediaUrls.
  1. Sử dụng cấu trúc đối tượng cho các trường post và/hoặc mediaUrls.
  2. Chỉ định nội dung cho từng nền tảng bằng tên nền tảng làm khóa.
  3. Bao gồm khóa default cho nội dung được sử dụng trên các nền tảng không được chỉ định rõ ràng.
Trong ví dụ trên:
  • Instagram sẽ sử dụng văn bản cụ thể và URL hình ảnh của nó.
  • Facebook sẽ sử dụng văn bản cụ thể và URL hình ảnh mặc định.
  • LinkedIn sẽ sử dụng văn bản mặc định và URL hình ảnh cụ thể của nó.
Nếu bạn cần đăng nhiều hình ảnh đến các nền tảng khác nhau, hãy tạo các bài đăng riêng biệt cho mỗi nền tảng thay vì sử dụng cấu trúc đa nền tảng này.

Profile Keys

Đăng bài thay mặt người dùng bằng cách cung cấp Profile Keys của người dùng như một tham số body và dữ liệu bổ sung trong phản hồi. Yêu cầu Business hoặc Enterprise Plan.

Profiles

Bài đăng văn bản phong phú

Bạn có thể thêm văn bản phong phú như ”𝓗𝓮𝓵𝓵𝓸, how about a little 𝗯𝗼𝗹𝗱 𝘁𝗲𝘅𝘁 and 𝘪𝘵𝘢𝘭𝘪𝘤𝘴 𝘵𝘦𝘹𝘵 and an x₂?”. Bạn có thể sử dụng văn bản phong phú trên các mạng như Twitter, Facebook, LinkedIn, Telegram, và Instagram. Nếu đăng lên Reddit, vui lòng sử dụng định dạng Reddit-flavored Markdown. Các phần tử HTML được sử dụng để chỉ định loại văn bản phong phú, được chuyển thành unicode. Ví dụ:

Các phần tử HTML

HTMLVí dụ
<b>Nice One!</b>Nice One!
<strong>Hello, world!</strong>Hello, world!
<em>World</em>World
normal <i>italics <b>bold italics</b></i>normal italics bold italics
`<b>Hello</b>, world!`Hello, world!
`<b>Hello</b>, world!`Hello, world!
<samp>123</samp>𝟷𝟸𝟹
<var>Hello</var>𝓗𝓮𝓵𝓵𝓸
x<sub>2</sub>x₂
x<sup>2</sup>

Mã CSS

Ví dụKết quả
\u00B0It’s 25\u00B0C today!It’s 25°C today!
\u2063\nThis is a new\u2063\nline.This is a new
line.

Lên lịch bài đăng

Tạo bài đăng đã lên lịch

Bạn có thể lên lịch bài đăng trong tương lai bằng cách chỉ định tham số scheduleDate với datetime ở Zulu/UTC. Thời gian Zulu, còn được gọi là Coordinated Universal Time (UTC), là tiêu chuẩn thời gian thế giới. Ví dụ, sử dụng định dạng YYYY-MM-DDThh:mm:ssZ và gửi dưới dạng 2026-07-08T12:30:00Z. Vui lòng xem utctime để biết thêm ví dụ.
Vui lòng xem https://www.utctime.net/ để biết cách chuyển đổi thời gian địa phương của bạn sang thời gian Zulu/UTC. Nếu datetime đã lên lịch ở trong quá khứ, bài đăng sẽ được gửi ngay lập tức.
Nếu một mediaUrl được bao gồm trong một bài đăng đã lên lịch, phương tiện phải có sẵn tại thời điểm xuất bản đã lên lịch. Ví dụ, nếu bài đăng được lên lịch xuất bản vào ngày 5 tháng 3 năm 2026, phương tiện phải có sẵn vào ngày 5 tháng 3 năm 2026.
Xử lý lỗi cho bài đăng đã lên lịch so với bài đăng ngay lập tứcCó một sự khác biệt quan trọng trong cách xử lý lỗi xác thực giữa bài đăng ngay lập tức và bài đăng đã lên lịch:
  • Bài đăng ngay lập tức
    • Khi xuất bản ngay lập tức (không có scheduleDate), nếu một nền tảng không vượt qua kiểm tra xác thực, các nền tảng khác sẽ tiếp tục được xử lý. Ví dụ, nếu một bài đăng vượt quá giới hạn ký tự của Twitter nhưng hợp lệ đối với Facebook và Instagram, bài đăng sẽ thất bại trên Twitter nhưng vẫn được xuất bản đến Facebook và Instagram.
  • Bài đăng đã lên lịch
    • Khi lên lịch bài đăng để xuất bản trong tương lai (với scheduleDate), tất cả các nền tảng phải vượt qua kiểm tra xác thực ban đầu trước khi bài đăng được lên lịch. Nếu bất kỳ nền tảng nào không vượt qua các kiểm tra xác thực trước này, toàn bộ thao tác lên lịch sẽ bị từ chối và một lỗi sẽ được trả về ngay lập tức.
    • Tuy nhiên, một số lỗi dành riêng cho nền tảng có thể không được phát hiện cho đến thời điểm đăng thực tế. Trong những trường hợp này, bài đăng đã lên lịch sẽ cố gắng xuất bản đến tất cả các nền tảng, và các lỗi nền tảng riêng lẻ sẽ được báo cáo trong kết quả cuối cùng mà không ảnh hưởng đến các nền tảng khác.

Kiểm tra trạng thái bài đăng đã lên lịch

Bạn có thể kiểm tra trạng thái của bài đăng đã lên lịch theo nhiều cách:
  • Thiết lập Webhook Scheduled Action để tự động nhận trạng thái của bài đăng đã lên lịch. Điều này có sẵn cho Business plan và là phương pháp được khuyến nghị.
  • Lấy trạng thái của bài đăng đã lên lịch với lệnh gọi GET với post ID.
  • Kiểm tra trạng thái trong Ayrshare Dashboard. Trước tiên chuyển sang User Profile mà bài đăng đã được xuất bản, sau đó vào trang “Posts” và tìm kiếm bằng Ayrshare Post ID.

Tạm dừng bài đăng đã lên lịch

Bạn có thể tạm dừng bài đăng đã lên lịch chưa được xuất bản. Tạm dừng bài đăng đã lên lịch sẽ ngăn nó được xuất bản cho đến khi bài đăng được bỏ tạm dừng. Sử dụng lệnh gọi PATCH để tạm dừng hoặc bỏ tạm dừng bài đăng đã lên lịch. Xin lưu ý nếu bài đăng được bỏ tạm dừng và scheduleDate ở trong quá khứ bài đăng sẽ được xuất bản ngay lập tức. Cân nhắc cập nhật scheduleDate trước khi bỏ tạm dừng.

Rút gọn liên kết

Các liên kết trong bài đăng có thể được rút gọn bằng link shortner của Ayrshare. Bạn có thể bật tính năng rút gọn liên kết tự động với tham số shortenLinks khi gửi bài đăng. Yêu cầu Max Pack.

Hình ảnh Unsplash

Các trường sau khả dụng cho tham số body unsplash:
  • Hình ảnh ngẫu nhiên: random trả về một hình ảnh Unsplash ngẫu nhiên.
  • Hình ảnh dựa trên tìm kiếm: giá trị String cụm từ tìm kiếm; ví dụ, money sẽ chọn một hình ảnh ngẫu nhiên dựa trên money.
  • Image IDs: giá trị Array of Ids; ví dụ [“HubtZZb2fCM”] của hình ảnh https://unsplash.com/photos/HubtZZb2fCM
Nếu sao chép một URL Unsplash để đăng trong mediaUrls, vui lòng chắc chắn sao chép địa chỉ hình ảnh và không chỉ là URL. Vui lòng xem ví dụ này để biết thêm thông tin.