> ## 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.

# Guía de inicio rápido

> Vincula tus cuentas sociales y envía tu primera publicación en unos minutos.

Esta guía sirve para configurar una única empresa. Para suscripciones a los planes Business y Enterprise con múltiples usuarios, se ofrece una guía de integración personalizada.

<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>

## Conecta tus cuentas de redes sociales

Inicia sesión o regístrate para obtener una [cuenta de Ayrshare](https://app.ayrshare.com/).
En la página Social Account, haz clic en las redes sociales que quieras conectar.
Asegúrate de otorgar todos los permisos.

<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>

## Obtén tu API Key

Se requiere una API Key para autorizar el acceso a los endpoints de la API.
Esta clave se usa en la cabecera de tus solicitudes y debe ir precedida por la palabra clave `Bearer`.

Tu API Key se encuentra en el [Dashboard de Ayrshare](https://app.ayrshare.com/), en la página **API Key**. Si es necesario, cambia a tu 'Primary Profile' desde la página **User Profiles**.
Desde ahí, puedes encontrar la página **API Key** en el panel lateral izquierdo.

<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" />

Cada llamada a la API debe incluir la API Key en la cabecera usando un token `Bearer`. Incluye también el `Content-Type` con valor `application/json`.

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

Consulta la sección [Authorization](/apis/overview#authorization) para más información.

## Envía tu primera publicación por API

### Publicar el post

A continuación se muestran ejemplos de código en distintos lenguajes que ilustran cómo realizar una publicación con nuestra API.
Para una integración aún más sencilla, puedes usar uno de nuestros [paquetes SDK](/packages-guides/overview) predefinidos.

Para hacer una publicación necesitarás:

<ul className="custom-bullets">
  <li>Tu [API Key](/apis/overview#authorization) para la autenticación.</li>
  <li>El contenido de texto de tu publicación.</li>
  <li>Las plataformas de redes sociales en las que quieres publicar (incluye solo plataformas que hayas vinculado).</li>
  <li>Opcional: URLs de las imágenes o videos que quieras incluir.</li>
</ul>

Todos los ejemplos usan el endpoint [/post](/apis/post/post). Veamos un poco de código de ejemplo:

<Info>
  **¿Publicando en X/Twitter?** X requiere tus propias credenciales de API. Añade 2 cabeceras BYO (`X-Twitter-OAuth1-Api-Key` y `X-Twitter-OAuth1-Api-Secret`) a tu solicitud. Esto es una **configuración única por cuenta de Ayrshare**, y el mismo par de claves funciona para cada sub-perfil / usuario final. Consulta la [guía de configuración](/dashboard/connect-social-accounts/x-twitter-byo-keys) para más detalles.
</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>

¡Felicidades! Acabas de enviar tu primera publicación.

### Respuesta de la publicación

Recibirás una respuesta con un `status` de "success" cuando nuestra API procese correctamente tu publicación. La respuesta incluye:

<ul className="custom-bullets">
  <li>`status`: Estado general de la llamada a la API ("success" o "error")</li>
  <li>`errors`: Arreglo con los errores encontrados (vacío si fue exitoso)</li>
  <li>`postIds`: Arreglo de objetos con los detalles específicos de cada plataforma:</li>

  <ul className="custom-bullets">
    <li>Nombre de la plataforma</li>
    <li>ID de la publicación en esa plataforma</li>
    <li>URL para ver la publicación</li>
    <li>Información adicional específica de la plataforma</li>
  </ul>
</ul>

Cada plataforma en el arreglo `postIds` tendrá su propio status, lo que te permite verificar qué plataformas recibieron correctamente tu publicación.

Revisa tus páginas de redes sociales para asegurarte de que la publicación se procesó correctamente y está en vivo. Ten en cuenta que algunas plataformas pueden tener una ligera demora antes de que las publicaciones aparezcan públicamente.

Aquí tienes una respuesta de ejemplo:

```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!"
}
```

Consulta más ejemplos de código para llamar a la API de redes sociales en Node.js, Python, PHP, Golang, C# y Ruby, además de otras excelentes capacidades:

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

### Profundicemos un poco

Analicemos el proceso de lo que acaba de pasar cuando hicimos esta llamada a la API.

<Steps>
  <Step title="Configura la cabecera">
    Configuramos el token bearer de autorización en la cabecera (API Key) y el content type
    json.
  </Step>

  <Step title="Crea un objeto en el cuerpo">
    Luego, creamos un objeto en el body:

    <ul className="custom-bullets">
      <li>Post con el texto "Today is a great day!".</li>

      <li>
        Plataformas de redes sociales: Facebook, Instagram y LinkedIn.
        Debes incluir únicamente las plataformas que hayas vinculado en la página
        de Social Linkage.
      </li>

      <li>Añadimos una imagen en mediaUrls.</li>
    </ul>
  </Step>

  <Step title="Llama al endpoint /post">
    Enviamos todo como un HTTP POST al endpoint /post.
  </Step>
</Steps>

## Antes de irte, algunas buenas prácticas

### Lee la documentación

Mantenemos documentación extensa y actualizada. Ya que estás aquí, dedica un rato a revisar las secciones de la documentación en la navegación de la izquierda.

### Los códigos de error son importantes

Debes manejarlos para que tus usuarios tengan una excelente experiencia.

<Card title="Errores" icon="link" href="/errors/overview" horizontal />

### Mantén tu API Key segura

Nos tomamos la seguridad muy en serio, y tú deberías hacer lo mismo. Tienes control total sobre la conexión entre Ayrshare y tus cuentas de redes sociales. Una vez conectadas las cuentas, la API Key de Ayrshare se convierte en el modo de autenticación. Por favor, mantén esta clave secreta y segura.

### Publica posts de prueba

Puedes publicar posts de prueba con una cita, imagen o video aleatorios usando los parámetros `randomPost`, `randomMediaUrl`, e `isLandscapeVideo` o `isPortraitVideo` en el [endpoint /post](/apis/post/post). Si usas `randomPost`, el parámetro `post` no es obligatorio.

<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>
  Estas publicaciones son visibles en tus páginas de redes sociales, así que, si corresponde, elimínalas después de probar.
</Warning>

#### Cita aleatoria

Envía una cita aleatoria para probar la publicación agregando `randomPost: true`.

Se usa con el endpoint [/post](/apis/post/post).

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

#### Imagen aleatoria

Envía una imagen aleatoria agregando `randomMediaUrl: true`.

Se usa con el endpoint [/post](/apis/post/post).

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

#### Video aleatorio

Envía un video horizontal aleatorio agregando `isVideo: true` e `isLandscapeVideo: true`.
El video tendrá el tamaño estándar horizontal.

Se usa con el endpoint [/post](/apis/post/post).

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

Envía un video vertical aleatorio, requerido para TikTok o para los Reels de Facebook/Instagram, agregando `isVideo: true` e `isPortraitVideo: true`.

Se usa con el endpoint [/post](/apis/post/post).

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

#### Comentario aleatorio

Envía un comentario aleatorio para probar la publicación de un comentario agregando `randomComment: true`.

Se usa con el endpoint [/comment](/apis/comments/post-comment).

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

#### Ejemplo de llamada cURL

Envía una cita aleatoria y un video vertical.

```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
```

### **Usa Postman para probar tus llamadas a la API**

[Postman](https://www.postman.com/) es una herramienta increíble para probar llamadas a APIs. Incluso puedes generar código en más de una docena de lenguajes.

### Código de demostración

Si buscas un proyecto de demostración en React y NodeJS, consulta este repositorio de GitHub:

<Card title="App de demostración de publicaciones sociales en GitHub" icon="github" href="https://github.com/ayrshare/social-api-demo" horizontal />

### **Solución de problemas comunes**

A veces las cosas no salen bien, así que aquí tienes un poco de ayuda en nuestro centro de ayuda.

<Card title="Solución de problemas" icon="link" href="/help-center/overview" horizontal />

### **Contáctanos para obtener ayuda**

Estamos aquí para ayudar, así que utiliza el chat en la esquina inferior derecha o [envíanos un correo](mailto:support@ayrshare.com).
