> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Hướng dẫn Quick Start

> Liên kết các tài khoản mạng xã hội của bạn và gửi bài đăng đầu tiên chỉ trong vài phút.

Hướng dẫn này dành cho việc thiết lập một công ty duy nhất. Đối với các đăng ký Business Plan và Enterprise Plan với nhiều người dùng, một hướng dẫn tích hợp được cá nhân hóa sẽ được cung cấp.

<div class="video-container">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/HaWh_QOib_Y" title="Ayrshare's Social API Quick Start Guide" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscsope; picture-in-picture" />
</div>

## Kết nối các tài khoản mạng xã hội của bạn

Đăng nhập hoặc đăng ký [tài khoản Ayrshare](https://app.ayrshare.com/).
Trên trang Social Account, nhấp vào các mạng xã hội mà bạn muốn kết nối.
Vui lòng đảm bảo cấp tất cả các quyền.

<p align="center">
  <img width="240" src="https://mintcdn.com/ayrshare-docs/dKBti0xVDJrOZ19f/images/fb-connect.webp?fit=max&auto=format&n=dKBti0xVDJrOZ19f&q=85&s=d256f4862cb21b388d388cc62aa94659" alt="Facebook Linking Example" data-path="images/fb-connect.webp" />
</p>

## Lấy API Key của bạn

Cần có API Key để cấp quyền truy cập vào các endpoint API.
Khóa này được sử dụng trong header của yêu cầu và phải được đặt sau từ khóa `Bearer`.

API Key của bạn nằm trong [Ayrshare Dashboard](https://app.ayrshare.com/), trên trang **API Key**. Nếu cần, hãy chuyển sang 'Primary Profile' của bạn qua trang **User Profiles**.
Từ đó, bạn có thể tìm thấy trang **API Key** trong bảng bên trái.

<img src="https://mintcdn.com/ayrshare-docs/Nmrhj2Gh7WSf62Bh/images/api-key.webp?fit=max&auto=format&n=Nmrhj2Gh7WSf62Bh&q=85&s=29ebd3dd2f23c9f9f1c52a974ebd6240" alt="API Key" width="4000" height="1126" data-path="images/api-key.webp" />

Mỗi lệnh gọi API phải bao gồm API Key trong Header sử dụng một `Bearer` Token. Cũng bao gồm `Content-Type` là `application/json`.

```json Header theme={"system"}
"Authorization": "Bearer API_KEY",
"Content-Type": "application/json"
```

Xem [Authorization](/apis/overview#authorization) để biết thêm thông tin.

## Gửi bài đăng API đầu tiên của bạn

### Xuất bản bài đăng

Dưới đây là các ví dụ mã cho thấy cách thực hiện một bài đăng bằng API của chúng tôi trong các ngôn ngữ lập trình khác nhau.
Để tích hợp dễ dàng hơn nữa, bạn có thể sử dụng một trong các [gói SDK](/packages-guides/overview) được xây dựng sẵn của chúng tôi.

Để đăng bài, bạn sẽ cần:

<ul className="custom-bullets">
  <li>[API Key](/apis/overview#authorization) của bạn để xác thực.</li>
  <li>Nội dung văn bản của bài đăng của bạn.</li>
  <li>Các nền tảng mạng xã hội mà bạn muốn đăng lên (chỉ bao gồm các nền tảng bạn đã liên kết).</li>
  <li>Tùy chọn: URL của bất kỳ hình ảnh hoặc video nào bạn muốn thêm vào.</li>
</ul>

Tất cả các ví dụ đều sử dụng endpoint [/post](/apis/post/post). Hãy xem một số mã mẫu:

<Info>
  **Đăng lên X/Twitter?** X yêu cầu thông tin xác thực API của riêng bạn. Thêm 2 header BYO (`X-Twitter-OAuth1-Api-Key` và `X-Twitter-OAuth1-Api-Secret`) vào yêu cầu của bạn. Đây là **thiết lập một lần cho mỗi tài khoản Ayrshare**, và cùng một cặp khóa hoạt động cho mọi sub-profile / người dùng cuối. Xem [hướng dẫn thiết lập](/dashboard/connect-social-accounts/x-twitter-byo-keys) để biết chi tiết.
</Info>

<CodeGroup>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "post": "Today is a great day!",
    "platforms": ["facebook", "instagram", "linkedin"],
    "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"]
  }' \
  -X POST https://api.ayrshare.com/api/post
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";

  fetch("https://api.ayrshare.com/api/post", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "Authorization": `Bearer ${API_KEY}`
        },
        body: JSON.stringify({
          post: "Today is a great day!", // required
          platforms: ["bluesky", "facebook", "instagram", "linkedin"], // required
          mediaUrls: ["https://img.ayrshare.com/012/gb.jpg"] //optional
        }),
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

  ```python Python theme={"system"}
  import requests

  payload = {'post': 'Today is a great day!',
          'platforms': ['bluesky', 'facebook', 'instagram', 'linkedin'],
          'mediaUrls': ['https://img.ayrshare.com/012/gb.jpg']}
  headers = {'Content-Type': 'application/json',
          'Authorization': 'Bearer API_KEY'}

  r = requests.post('https://api.ayrshare.com/api/post',
      json=payload,
      headers=headers)

  print(r.json())
  ```

  ```php PHP theme={"system"}
  <?php

  $curl = curl_init();
  $data = [
      "post" => "Today is a great day!",
      "platforms" => ["bluesky", "facebook", "instagram", "linkedin", "pinterest"],
      "mediaUrls" => ["https://img.ayrshare.com/012/gb.jpg"]
  ];

  curl_setopt_array($curl, [
      CURLOPT_URL => 'https://api.ayrshare.com/api/post',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_POSTFIELDS => json_encode($data),
      CURLOPT_HTTPHEADER => [
          'Authorization: Bearer API_KEY', // Replace 'API_KEY' with your actual API key
          'Content-Type: application/json'
      ],
  ]);

  $response = curl_exec($curl);
  curl_close($curl);
  echo $response;
  ```

  ```go Go theme={"system"}
  package main

  import (
  	"bytes"
  	"encoding/json"
  	"log"
  	"net/http"
  )

  func main() {
  	message := map[string]interface{}{
  		"post":      "Today is a great day!",
  		"platforms": []string{"bluesky", "facebook", "instagram", "linkedin"},
  		"mediaUrls": []string{"https://img.ayrshare.com/012/gb.jpg"}
  	}

  	bytesRepresentation, err := json.Marshal(message)
  	if err != nil {
  		log.Fatalln(err)
  	}

  	req, _ := http.NewRequest("POST", "https://api.ayrshare.com/api/post",
  		bytes.NewBuffer(bytesRepresentation))

  	req.Header.Add("Content-Type", "application/json; charset=UTF-8")
  	req.Header.Add("Authorization", "Bearer API_KEY")

  	res, err := http.DefaultClient.Do(req)
  	if err != nil {
  		log.Fatal("Error:", err)
  	}

  	res.Body.Close()
  }
  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Text;
  using System.Threading.Tasks;

  namespace PostPOSTRequest_csharp
  {
    class Post
    {
      private static readonly HttpClient client = new HttpClient();

          static async Task Main(string[] args)
          {
              string API_KEY = "API_KEY";
              string url = "https://api.ayrshare.com/api/post";

              // Set up request headers
              client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

              // Prepare JSON content
              string json = "{\"post\" : \"Today is a great day!\","
                  + "\"platforms\" : [ \"bluesky\", \"facebook\", \"instagram\", \"linkedin\" ],"
                  + "\"mediaUrls\" : [ \"https://img.ayrshare.com/012/gb.jpg\" ]}";
              var content = new StringContent(json, Encoding.UTF8, "application/json");

              try
              {
                  // Send POST request
                  HttpResponseMessage response = await client.PostAsync(url, content);
                  response.EnsureSuccessStatusCode();

                  // Read response
                  string responseBody = await response.Content.ReadAsStringAsync();
                  Console.WriteLine(responseBody);
              }
              catch (HttpRequestException e)
              {
                  Console.WriteLine($"Error: {e.Message}");
              }
          }
      }
  }
  ```

  ```ruby Ruby theme={"system"}
  require 'httparty'    # gem install httparty

  res = HTTParty.post("https://api.ayrshare.com/api/post",
      headers: {Authorization: "Bearer API_KEY"},
      body: {
          post: "Today is a great day!",
          platforms: ['bluesky', 'facebook', 'instagram', 'linkedin'],
          mediaUrls: ["https://img.ayrshare.com/012/gb.jpg"]
      }).body

  puts res
  ```
</CodeGroup>

Chúc mừng! Bạn vừa gửi bài đăng đầu tiên của mình.

### Phản hồi bài đăng

Bạn sẽ nhận được phản hồi với `status` là "success" khi API của chúng tôi xử lý thành công bài đăng của bạn. Phản hồi bao gồm:

<ul className="custom-bullets">
  <li>`status`: Trạng thái tổng thể của lệnh gọi API ("success" hoặc "error")</li>
  <li>`errors`: Mảng chứa các lỗi gặp phải (rỗng nếu thành công)</li>
  <li>`postIds`: Mảng các đối tượng chứa chi tiết riêng của từng nền tảng:</li>

  <ul className="custom-bullets">
    <li>Tên nền tảng</li>
    <li>ID bài đăng trên nền tảng đó</li>
    <li>URL để xem bài đăng</li>
    <li>Thông tin bổ sung riêng của từng nền tảng</li>
  </ul>
</ul>

Mỗi nền tảng trong mảng `postIds` sẽ có trạng thái riêng, cho phép bạn xác minh những nền tảng nào đã nhận bài đăng thành công.

Hãy kiểm tra các trang mạng xã hội của bạn để đảm bảo bài đăng đã được xử lý thành công và đang hiển thị. Lưu ý rằng một số nền tảng có thể có độ trễ nhẹ trước khi bài đăng xuất hiện công khai.

Đây là một phản hồi mẫu:

```json Post Response theme={"system"}
{
  "status": "success",
  "errors": [],
  "postIds": [
    {
      "status": "success",
      "id": "738681876342836_1530521371228093",
      "postUrl": "https://www.facebook.com/738681876342836/posts/1530521371228093",
      "platform": "facebook"
    },
    {
      "status": "success",
      "id": "18008340650526653",
      "postUrl": "https://www.instagram.com/p/DGf4hgZObR0/",
      "usedQuota": 1,
      "platform": "instagram"
    },
    {
      "status": "success",
      "id": "urn:li:share:7300150903578275840",
      "postUrl": "https://www.linkedin.com/feed/update/urn:li:share:7300150903578275840",
      "owner": "urn:li:organization:66755239",
      "platform": "linkedin"
    }
  ],
  "id": "K0DmYRgugS5P694it",
  "refId": "d93ca2784c9bf7bf83e0bf081d16c91598",
  "post": "Today is a great day!"
}
```

Xem thêm các ví dụ mã gọi API mạng xã hội trong Node.js, Python, PHP, Golang, C#, và Ruby, cùng các khả năng tuyệt vời khác:

<Card title="Post" icon="code" href="/apis/post/post" horizontal />

### Đi sâu hơn một chút

Hãy phân tích quy trình những gì vừa xảy ra khi chúng ta thực hiện lệnh gọi API này.

<Steps>
  <Step title="Đặt Header">
    Chúng ta đã đặt Header Authorization bearer token (API Key) và content type
    là json.
  </Step>

  <Step title="Tạo đối tượng Body">
    Tiếp theo, chúng ta đã tạo một đối tượng body:

    <ul className="custom-bullets">
      <li>Post chứa văn bản "Today is a great day!".</li>

      <li>
        Các nền tảng mạng xã hội Facebook, Instagram và LinkedIn.
        Bạn chỉ nên bao gồm các nền tảng đã liên kết trên trang Social Linkage.
      </li>

      <li>Đã thêm một hình ảnh vào mediaUrls.</li>
    </ul>
  </Step>

  <Step title="Gọi endpoint /post">
    Gửi mọi thứ dưới dạng HTTP POST đến endpoint /post.
  </Step>
</Steps>

## Trước khi bạn đi, một số thực tiễn tốt nhất

### Đọc tài liệu

Chúng tôi duy trì tài liệu phong phú và cập nhật. Vì bạn đã ở đây, hãy dành thời gian xem qua các phần của tài liệu ở thanh điều hướng bên trái.

### Mã lỗi rất quan trọng

Bạn cần xử lý chúng để người dùng có trải nghiệm tuyệt vời.

<Card title="Lỗi" icon="link" href="/errors/overview" horizontal />

### Giữ API Key của bạn an toàn

Chúng tôi coi trọng bảo mật, và bạn cũng nên như vậy. Bạn có toàn quyền kiểm soát kết nối giữa Ayrshare và các tài khoản mạng xã hội của bạn. Khi các tài khoản đã được kết nối, Ayrshare API key trở thành cách bạn xác thực. Vui lòng giữ khóa này bí mật và an toàn.

### Xuất bản bài đăng thử nghiệm

Bạn có thể xuất bản bài đăng thử nghiệm với trích dẫn, hình ảnh hoặc video ngẫu nhiên bằng cách sử dụng các tham số `randomPost`, `randomMediaUrl`, và `isLandscapeVideo` hoặc `isPortraitVideo` trong [endpoint /post](/apis/post/post). Nếu bạn sử dụng `randomPost`, thì tham số `post` không bắt buộc.

<div class="video-container">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/hMI0eK-5qBk?si=y5dkygosZ1B2DtlV" title="Post Random Content" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" />
</div>

<Warning>
  Các bài đăng này sẽ hiển thị trực tiếp trên các trang mạng xã hội của bạn, vì vậy nếu thích hợp, hãy xóa chúng sau khi thử nghiệm.
</Warning>

#### Trích dẫn ngẫu nhiên

Gửi trích dẫn ngẫu nhiên để thử nghiệm xuất bản bài đăng bằng cách thêm `randomPost: true`.

Được sử dụng với endpoint [/post](/apis/post/post).

```json theme={"system"}
"randomPost": true
```

#### Hình ảnh ngẫu nhiên

Gửi hình ảnh ngẫu nhiên bằng cách thêm `randomMediaUrl: true`.

Được sử dụng với endpoint [/post](/apis/post/post).

```json theme={"system"}
"randomMediaUrl": true
```

#### Video ngẫu nhiên

Gửi video ngang ngẫu nhiên bằng cách thêm `isVideo: true` và `isLandscapeVideo: true`.
Video sẽ có kích thước ngang tiêu chuẩn.

Được sử dụng với endpoint [/post](/apis/post/post).

```json theme={"system"}
"randomMediaUrl": true,
"isLandscapeVideo": true
```

Gửi video dọc ngẫu nhiên, cần thiết cho TikTok hoặc Reels trên Facebook/Instagram, bằng cách thêm `isVideo: true` và `isPortraitVideo: true`.

Được sử dụng với endpoint [/post](/apis/post/post).

```json theme={"system"}
"randomMediaUrl": true,
"isPortraitVideo": true
```

#### Bình luận ngẫu nhiên

Gửi bình luận ngẫu nhiên để thử nghiệm xuất bản bình luận bằng cách thêm `randomComment: true`.

Được sử dụng với endpoint [/comment](/apis/comments/post-comment).

```json theme={"system"}
"randomComment": true
```

#### Ví dụ lệnh gọi cURL

Gửi trích dẫn ngẫu nhiên và video dọc.

```bash theme={"system"}
curl \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
    "randomPost": true,
    "platforms": ["facebook", "instagram", "linkedin"],
    "randomMediaUrl": true,
    "isPortraitVideo": true
}' \
https://api.ayrshare.com/api/post
```

### **Sử dụng Postman để kiểm thử các lệnh gọi API của bạn**

[Postman](https://www.postman.com/) là một công cụ tuyệt vời để kiểm thử các lệnh gọi API. Bạn thậm chí có thể tạo mã trong hơn một chục ngôn ngữ.

### Mã demo

Nếu bạn đang tìm kiếm dự án demo mẫu trong React và NodeJS, vui lòng xem repository GitHub này:

<Card title="Ứng dụng Demo Đăng bài Xã hội trên Github" icon="github" href="https://github.com/ayrshare/social-api-demo" horizontal />

### **Xử lý sự cố thường gặp**

Đôi khi mọi thứ không diễn ra suôn sẻ, vì vậy đây là một chút trợ giúp trong trung tâm hỗ trợ của chúng tôi.

<Card title="Xử lý sự cố" icon="link" href="/help-center/overview" horizontal />

### **Liên hệ với chúng tôi để được trợ giúp**

Chúng tôi ở đây để giúp đỡ, vì vậy vui lòng sử dụng trò chuyện ở góc dưới bên phải hoặc [gửi email cho chúng tôi](mailto:support@ayrshare.com).
