Pular para o conteúdo principal

Introdução

Os endpoints da X API v2 fornecem metadados de edição de Posts. O recurso Edit Posts foi inicialmente introduzido para testes entre funcionários da X em 1º de setembro de 2022. A partir dessa data, Posts elegíveis podem ser editados por 30 minutos e até 5 vezes. Todos os objetos de Posts criados desde 29 de setembro de 2022 incluem metadados de edição do Post, mesmo que o Post nunca tenha sido editado. Cada vez que um Post é editado, um novo ID do Post é criado. O histórico de edição de um Post pode ser descrito encadeando esses IDs, começando pelo ID original. Além disso, se qualquer Post na cadeia de edição for excluído, todos os Posts nessa cadeia também serão excluídos. Usando a X API v2, um desenvolvedor pode descobrir:
  • Se um Post era elegível para edição no momento da criação. Alguns Posts, como aqueles com enquetes ou Posts agendados, não podem ser editados.
  • Posts são editáveis por 30 minutos e podem ser editados até 5 vezes. Para Posts editáveis, você pode verificar se ainda resta tempo para edição e quantas edições adicionais são possíveis.
  • Se você está visualizando uma versão editada de um Post (na maioria dos casos, a API retornará a versão mais recente de um Post, a menos que uma versão anterior específica seja solicitada pelo ID do Post).
  • Todo o histórico de edição do Post.
  • O engajamento atribuído a cada versão do Post.
Há três componentes no histórico de edição de um Post:
  1. Por padrão, o payload do Post conterá um array de IDs de Post que fazem parte do histórico de edição de um Post. Essa informação é especificada por edit_history_tweet_ids, que é um campo padrão no payload do Post. Esse array conterá pelo menos um ID, o ID do Post original, não editado. Quando houver apenas um ID, isso significa que o Post não tem histórico de edição.
  2. Você pode obter informações como se um Post era editável no momento em que foi criado, quanto tempo, se houver, resta para um Post ser editado e quantas edições restam, especificando edit_controls no seu parâmetro tweet.fields.
  3. Por fim, você pode obter os Objetos Post para cada Post no histórico de edição de um Post, especificando edit_history_tweet_ids usando o parâmetro expansions
A maioria dos Posts é elegível para edição. No entanto, os seguintes tipos de Posts não são:
  • Post promovido
  • Post com enquete
  • Post que é uma resposta de thread que não é do próprio autor
  • Post que é um Retweet (observe que Quote Tweets são elegíveis para edição)
  • Post nullcast
  • Post de Comunidade
  • Post de Superfollow
  • Post Colaborativo
Exemplos
Os exemplos abaixo demonstram como um desenvolvedor pode solicitar metadados de edição de Post usando a X API v2. Observação: Os exemplos abaixo usam o endpoint User Post Timeline, mas você pode solicitar esses metadados usando os mesmos parâmetros (com fields e expansions) para todos os endpoints que retornam Posts (por exemplo, Posts lookup, search, filtered stream, etc.)

Comportamento padrão

Por padrão, em uma solicitação à API para qualquer endpoint que retorne Objetos Post na X API v2, você recebe:
  • O ID do Post
  • O texto do Post
  • Um array de IDs de Post que fazem parte do histórico de edições de um Post. Se apenas um ID for fornecido, isso significa que o Post não foi editado.
Request: curl --request GET 'https://api.x.com/2/users/:id/tweets' --header 'Authorization: Bearer $BEARER_TOKEN' Sample Response:
  "data": [
    {
      "id": "1514991667853602823",
      "text": "temos um botão de editar"
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"]
    }
  ]
}

Obtendo dados adicionais com edit_controls

Se você quiser metadados adicionais de Post editado, como se um Post era elegível para edição quando foi criado e quanto tempo resta para que um Post possa ser editado, você pode solicitar essas informações usando o parâmetro tweet.fields e definindo-o como edit_control. Requisição: curl --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control' --header 'Authorization: Bearer $BEARER_TOKEN' Exemplo de resposta:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "temos um botão de editar"
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ]
}

Obtendo objetos Post para todos os Posts no histórico de edição de um Post

Os exemplos acima fornecem um array de IDs do Post no histórico de edição de um Post. Se você quiser o Objeto Post correspondente para cada um desses IDs do Post, use o parâmetro de expansão e defina-o como edit_history_tweet_ids. Os Objetos Post que compõem o histórico de edição serão fornecidos no objeto “includes”.  Requisição:
      curl --location --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control&expansions=edit_history_tweet_ids' --header 'Authorization: Bearer $BEARER_TOKEN'`
Exemplo de resposta:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "temos um botão de editar",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ],
  "includes": {
    "tweets": [
      {
        "id": "1514991667853602822",
        "text": "precisamos de um botão de editar",
        "edit_history_tweet_ids": [
          "1514991667853602822",
          "1514991667853602823"
        ],
        "edit_controls": {
          "is_edit_eligible": true,
          "editable_until": "2022-04-21 09:35:20.311",
          "edits_remaining": 4
        }
      }
    ]
  }
}
I