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

# Guia de integração

> Esta página cobre ferramentas e conceitos-chave para integrar os endpoints de Retweet. Referência para o tier standard da X API v2 sobre retweets.

Esta página cobre ferramentas e conceitos-chave para integrar os endpoints de Retweet.

## Ferramentas úteis

Antes de mergulharmos em alguns conceitos-chave que ajudarão você a integrar este endpoint, recomendamos que você se familiarize com:

#### Postman

O Postman é uma ótima ferramenta que você pode usar para testar um endpoint. Cada requisição do Postman inclui todos os parâmetros de caminho e de corpo para ajudar você a entender rapidamente o que está disponível. Para saber mais sobre nossas coleções do Postman, visite a página ["Usando o Postman"](/tutorials/postman-getting-started).

#### Amostras de código

Interessado em começar a usar este endpoint com código na sua linguagem de programação preferida? Temos várias amostras de código diferentes disponíveis que você pode usar como ponto de partida em nossa [página do Github](https://github.com/xdevplatform/Twitter-API-v2-sample-code).

#### Bibliotecas de terceiros

Aproveite as [bibliotecas de terceiros](/tools-and-libraries) da nossa comunidade para ajudar você a começar. Você pode encontrar uma biblioteca que funcione com os endpoints v2 procurando pela tag de versão adequada.

### Conceitos-chave

#### Autenticação

Todos os endpoints da X API v2 exigem que você autentique suas requisições com um conjunto de credenciais, também conhecidas como chaves e tokens.

Você pode usar OAuth 1.0a User Context ou OAuth 2.0 Bearer Token para autenticar suas requisições ao endpoint de consulta de Retweets.

Os endpoints de gerenciar Retweets exigem o uso de OAuth 1.0a User Context, o que significa que você deve usar um conjunto de API keys e access tokens de usuário para fazer uma requisição bem-sucedida. Os access tokens devem estar associados ao usuário em nome do qual você está fazendo a requisição. Se você quiser gerar um conjunto de access tokens para outro usuário, ele deve autorizar ou autenticar seu App usando o fluxo 3-legged OAuth.

Observe que o OAuth 1.0a pode ser complicado de usar. Se você não estiver familiarizado com este método de autenticação, recomendamos que use uma [biblioteca](/tools-and-libraries) para autenticar corretamente suas requisições.

**Observação**

Se você estiver solicitando os seguintes fields, é necessário OAuth 1.0a User Context:

* tweet.fields.non\_public\_metrics
* tweet.fields.promoted\_metrics
* tweet.fields.organic\_metrics
* media.fields.non\_public\_metrics
* media.fields.promoted\_metrics
* media.fields.organic\_metrics

#### Developer Console, Projects e Apps de desenvolvedor

Para obter um conjunto de credenciais de autenticação que funcione com os endpoints da X API v2, você deve [se inscrever em uma conta de desenvolvedor](https://developer.x.com/en/portal/petition/essential/basic-info), configurar um [Project](/resources/fundamentals/developer-apps) dentro dessa conta e ter criado um [App de desenvolvedor](/resources/fundamentals/developer-apps) dentro desse Project. Você pode então encontrar suas chaves e tokens dentro do seu App de desenvolvedor.

#### Rate limits

Todos os dias, muitos milhares de desenvolvedores fazem requisições à X API. Para ajudar a gerenciar o grande volume dessas requisições, [rate limits](/x-api/fundamentals/rate-limits) são aplicados em cada endpoint que limitam o número de requisições que você pode fazer em nome do seu app ou em nome de um usuário autenticado.

Os endpoints de gerenciar Retweets são limitados a 50 requisições por 15 min (por usuário). Além disso, para o endpoint POST, você está limitado a 300 requisições por janela de 3 horas (por usuário, por app).

Com o endpoint de consulta de Retweets, você está limitado a 75 requisições por janela de 15 min. Além disso, apenas os 100 usuários que fizeram Retweet mais recentemente serão retornados por este endpoint.

#### Fields e expansions

A X API v2 permite que os usuários selecionem exatamente quais dados desejam retornar da API usando um conjunto de ferramentas chamado fields e expansions. O parâmetro expansion permite expandir objetos referenciados no payload. Por exemplo, este endpoint permite obter as seguintes [expansions](/x-api/fundamentals/expansions):

* attachments.poll\_ids
* attachments.media\_keys
* author\_id, entities.mentions.username
* geo.place\_id
* in\_reply\_to\_user\_id,
* referenced\_tweets.id,
* referenced\_tweets.id.author\_id

O parâmetro fields permite selecionar exatamente quais [fields](/x-api/fundamentals/fields) dentro dos diferentes objetos de dados você gostaria de receber. Estes endpoints entregam principalmente objetos Post. Por padrão, o objeto Post retorna os fields id e text. Para receber fields adicionais como tweet.created\_at ou tweet.entities, você terá que solicitá-los especificamente usando um parâmetro fields. Alguns fields importantes que você pode querer considerar usar em sua integração são nossos fields de dados de poll, metrics, Post annotations e conversation ID.

Adicionamos um guia sobre como [usar fields e expansions](/x-api/fundamentals/data-dictionary/reference#how-to-use-fields-and-expansions) juntos ao nosso [data dictionary da X API v2](/x-api/fundamentals/data-dictionary).

***

### Exemplos de código

#### Obter usuários que retweetaram um Post

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl "https://api.x.com/2/tweets/1234567890/retweeted_by?user.fields=username,verified" \
    -H "Authorization: Bearer $BEARER_TOKEN"
  ```

  ```python Python SDK theme={null}
  from xdk import Client

  client = Client(bearer_token="YOUR_BEARER_TOKEN")

  # Obter usuários que retweetaram um Post
  response = client.posts.get_retweeted_by(
      "1234567890",
      user_fields=["username", "verified"]
  )
  for user in response.data:
      print(f"{user.username} - Verified: {user.verified}")
  ```

  ```javascript title="JavaScript SDK" lines wrap icon="square-js" theme={null}
  import { Client } from "@xdevplatform/xdk";

  const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

  // Obter usuários que retweetaram um Post
  const response = await client.posts.getRetweetedBy("1234567890", {
    userFields: ["username", "verified"],
  });

  response.data?.forEach((user) => {
    console.log(`${user.username} - Verified: ${user.verified}`);
  });
  ```
</CodeGroup>

#### Retweetar um Post

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl -X POST "https://api.x.com/2/users/123/retweets" \
    -H "Authorization: OAuth ..." \
    -H "Content-Type: application/json" \
    -d '{"tweet_id": "1234567890"}'
  ```

  ```python title="Python SDK" lines wrap icon="python" theme={null}
  from xdk import Client
  from xdk.oauth1_auth import OAuth1

  oauth1 = OAuth1(
      api_key="YOUR_API_KEY",
      api_secret="YOUR_API_SECRET",
      access_token="YOUR_ACCESS_TOKEN",
      access_token_secret="YOUR_ACCESS_TOKEN_SECRET"
  )

  client = Client(auth=oauth1)

  # Retweetar um Post
  response = client.posts.retweet(user_id="123", tweet_id="1234567890")
  print(response.data)
  ```

  ```javascript title="JavaScript SDK" lines wrap icon="square-js" theme={null}
  import { Client, OAuth1 } from "@xdevplatform/xdk";

  const oauth1 = new OAuth1({
    apiKey: "YOUR_API_KEY",
    apiSecret: "YOUR_API_SECRET",
    accessToken: "YOUR_ACCESS_TOKEN",
    accessTokenSecret: "YOUR_ACCESS_TOKEN_SECRET",
  });

  const client = new Client({ oauth1 });

  // Retweetar um Post
  const response = await client.posts.retweet("123", { tweetId: "1234567890" });
  console.log(response.data);
  ```
</CodeGroup>
