Skip to content

API WP Guardian

Introdução

Este item destina-se a parceiros Plesk ou cPanel que desejam vender VPSs com WP Guardian instalado e licenciado. Fornecemos um procedimento passo a passo e exemplos de chamadas de API necessárias para instalar e licenciar o WP Guardian no VPS do cliente.

Pré-requisitos

Como parceiro Plesk ou cPanel, você precisa ter acesso às APIs correspondentes: Key Administrator para Plesk e Manage2 para cPanel, respectivamente.

Ter acesso significa que você possui as credenciais necessárias para usar as APIs, que são básicas $AUTH_TOKEN para Key Administrator e login e senha para Manage2.

Nota

Caso não possua as credenciais mencionadas acima, entre em contato com o gerente da sua conta Plesk ou cPanel. 

O algoritmo geral e os esquemas detalhados

O procedimento começa com um cliente fazendo um pedido (etapa 1) e termina com você entregando um VPS pronto para uso ao cliente (etapa 6). Entre uma etapa e outra, você deve seguir os seguintes passos:

(2) Criar um usuário do WP Guardian.

(3) Criar uma licença WP Guardian.

(4) Obtenha o snippet da string de conexão.

(5) Execute o snippet da string de conexão no VPS do cliente.

Com exceção da etapa 3, todas as etapas acima são semelhantes entre o Key Administrator e o Manage2. Portanto, teremos duas seções separadas descrevendo como criar uma licença do WP Guardian com o Key Administrator e o Manage2.

Para ajudar você a entender melhor as diferenças entre o Key Administrator e o Manage2, anexamos o esquema detalhado de cada uma dessas APIs. Partindo deste ponto, também usamos a numeração mostrada nesses esquemas (por exemplo, Solicitação de API 2.1 ou Resposta 4.2). Caso se sinta perdido(a) no texto, consulte os esquemas abaixo para esclarecimentos.

2. Criando um usuário do WP Guardian

Para criar um usuário através da API do WP Guardian, primeiro você precisa obter um token de gerenciamento. Para isso, entre em contato com um representante de vendas da WP Guardian ou com a Equipe de Sucesso do Cliente da Plesk.

Após obter o token de gerenciamento, envie a solicitação seguindo o padrão abaixo, adicionando o token ao cabeçalho de Autorização:

Solicitação 2.1

POST https://app.wpguardian.io/api/v1/security-dashboard/management/users HTTP/1.1
Authorization: Bearer $MANAGEMENT_TOKEN
Content-Type: application/json
{
  "email": "john.doe@example.com",
  "firstName": "John",
  "lastName": "Doe"
}

Caso a Solicitação 2.1 for bem-sucedida, você receberá uma resposta com o seguinte padrão:

Resposta 2.3

HTTP/1.1 201 Created
{
  "data": {
    "userGuid": "1092a1a6-a716-400d-aba5-ad853a330561",
    "teamGuid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c",
    "userToken": "368ded8f-883a-4759-9f28-8906c3e5136c"
  }
}

A resposta contém três valores. Salve dois deles (teamGuid e userToken) para usar mais tarde:

  • O teamGuid é usado para fazer o upgrade ou cancelar uma licença do WP Guardian.
  • O userToken ajuda a conectar mais servidores à conta do usuário.

Caso a Solicitação 2.1 estiver incorreta, você receberá a seguinte resposta de erro:

Resposta de erro: Resposta de token inválida

HTTP/1.1 401 Unauthorized

Caso o usuário com as informações enviadas já existir, você receberá a seguinte mensagem de erro:

Resposta de erro: O usuário já existe

HTTP/1.1 409 Conflict

3. Criando uma licença do WP Guardian (Key Administrator)

Nota

Cada usuário do WP Guardian só pode ter uma licença ativa por vez. 

Você cria uma licença para um usuário do WP Guardian através da API do Key Administrator Partner.

Para criar uma licença, envie a solicitação seguindo o seguinte padrão:

Solicitação 3.1

POST https://api.central.plesk.com/30/keys?return-key-state=yes
Authorization: Basic: $AUTH_TOKEN
Content-Type: application/json
{
    "activationInfo": { "uid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c" },
    "items": [
        {
            "item": "WPG-PLSK-1-1M"
        }
    ]
}

onde

  • $AUTH_TOKEN é um token necessário para acessar a API do Key Administrator Partner. Cada parceiro Plesk possui um.
  • uid em activationInfo é teamGuid da Resposta 2.3.
  • item em items é o tipo de licença e pode ser um dos seguintes:

  • WPG-PLSK-1-1M

  • WPG-PLSK-5-1M
  • WPG-PLSK-10-1M
  • WPG-PLSK-30-1M
  • WPG-PLSK-50-1M

!!! nota

  Para ver a lista de todos os tipos de licença WP Guardian disponíveis, consulte a seção ["Partner API 3.0 Constants"](https://docs.plesk.com/en-US/obsidian/partner-api-3.0/partner-api-30-constants.77835/){target=_blank} (`"category":"WP Guardian Keys"`).

Caso sua Solicitação 3.1 for bem-sucedida, você receberá uma resposta com o seguinte padrão:

Resposta 3.4

HTTP/1.1 201 Created
{
  "ownerId": "700540512",
  "keyIdentifiers": {
    "keyId": 17654729,
    "keyNumber": "WPG.17654729.0000",
    "activationCode": "AB1234-CD5678-EF9012-GH123-IJ456",
    "activationLink": "https://app.wpguardian.io/licensing/activate-license?code=AB1234-CD5678-EF9012-GH123-IJ456&product=WP+Guardian+1+Site"
  },
  "parentKeyIdentifiers": null,
  "activationInfo": {
    "uid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c",
    "activated": true
  },
  "ipAddressBinding": null,
  "nickname": "",
  "productConfigurationId": null,
  "items": [
    {
      "externalId": null,
      "item": "WPG-PLSK-1-1M"
    }
  ],
  "creationDate": "2024-09-12T10:34:11.741Z",
  "lastModificationDate": "2024-09-12T10:34:11.763Z",
  "updateDate": "2024-10-12T00:00:00.000Z",
  "expirationDate": "2024-10-22T00:00:00.000Z",
  "susExpirationDate": null,
  "susStatus": null,
  "supportExpirationDate": null,
  "supportStatus": null,
  "status": "ACTIVE",
  "terminated": false,
  "suspended": false,
  "ownerSuspended": false,
  "autoRenew": true,
  "restrictIPBinding": false,
  "frauds": [],
  "lastReportingDate": null,
  "lastReportingIp": null,
  "lastReportingOs": null,
  "childKeyIdentifiers": [],
  "overridingKeyIdentifiers": null
}

Caso a Solicitação 3.1 estiver incorreta, você receberá a seguinte resposta de erro:

Resposta de erro: Resposta de token inválida

HTTP/1.1 401
Content-Type: application/json
Content-Length: 77
{"code":"401","type":"6011","message":"The request requires authentication."}

Caso o usuário já possua uma licença ativa, você receberá a seguinte mensagem de erro:

Resposta de erro: Erro de terceiros

HTTP/1.1 404 
Content-Type: application/json
{"code":"404","type":"6101","message":"Third party server returned an error"}

3. Criando uma licença do WP Guardian (Manage2)

Diferentemente do Key Administrator, o Manage2 não oferece suporte à criação de uma licença já vinculada a um usuário específico. Primeiro, você cria uma licença inativa, gera o link de ativação para a licença e, em seguida, envia o link para o cliente. Assim que o cliente abrir o link, a licença será ativada e vinculada ao cliente.

Vamos ver como proceder em cada etapa.

Etapa 1. Crie uma licença inativa do WP Guardian enviando a solicitação de API com o seguinte padrão:

Solicitação 3.1

GET https://manage2.cpanel.net/XMLlicenseAdd.cgi?output=json&packageid=P999994429&sites==500
Authorization Basic: login:password

onde

  • login:password login e senha é necessário para acessar a API do Manage2. Cada parceiro cPanel o possui.
  • packageID é o tipo de licença e pode ser um dos seguintes:
  • "P999994429": "WP Guardian 500 Websites"
  • "P999994433": "WP Guardian 1000 Websites"
  • "P999994441": "WP Guardian Mais de 10.000 sites - Pague conforme o uso"
  • o parâmetro sites deve corresponder ao tipo de licença. Por exemplo, se o tipo de licença for P999994429, então o parâmetro sites será 500, e assim por diante.

!!! nota

  Para ver a lista de todos os tipos de licença WP Guardian disponíveis, [use a API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank}.

!!! nota

  [A saída da API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank} contém dois produtos: "WP Guardian N Sites" e "WP Guardian (cPanel Addon) N Sites Pack". Você precisa do primeiro.

Caso a Solicitação 3.1 for bem-sucedida, você receberá uma resposta com o seguinte padrão:

Resposta 3.2

{
    "monthly_price": "21.34",
    "status": 1,
    "yearly": 0,
    "reason": "Activated EXAMPLECOMPANY license on in the 'example' group.",
    "price": "0.00",
    "promoinfo": "",
    "licenseid": "17654729"
}

A partir da resposta, você precisa copiar o valor de licenseid para usá-lo posteriormente.

Etapa 2. Gerar uma licença inativa do WP Guardian enviando a solicitação de API com o seguinte padrão:

Solicitação 3.3

{
GET https://manage2.cpanel.net/XMLlicenseInfo.cgi?output=json&liscid=17654729
Authorization Basic: login:password
}

onde liscid é licenseid da Resposta 3.2.

Caso a Solicitação 3.3 for bem-sucedida, você receberá uma resposta com o seguinte padrão:

Resposta 3.4

{
    "licenses": {
        "17654729": {
            "accounts": 1,
...
            "activation_link": "https://app.wpguardian.io/licensing/activate-license?code=A00300-GEX111-577J59-A6AG72-AEKX66&product=WP+Guardian+500+Sites ",
...
        }
    },
    "reason": "OK",
    "status": 1,
    "version": 0.7
}

Etapa 3. Salve o link de ativação recebido na Resposta 3.4 e, em seguida, envie-o ao cliente. Certifique-se de que o cliente abra o link. Ao abrir o link, a licença é ativada e vinculada ao cliente.

4. Obtendo o snippet da string de conexão

O snippet da string de conexão é um script que você precisa obter da API do WP Guardian. Ao executar o snippet no servidor do cliente, você o conecta ao WP Guardian.

Para obter o snippet, envie a solicitação à API seguindo o padrão abaixo:

Solicitação 4.1

GET https://app.wpguardian.io/api/v1/security-dashboard/connection-snippet
Authorization: Bearer $USER_TOKEN
Content-Type: application/json

onde $USER_TOKEN é userToken da Resposta 2.3.

Caso a solicitação à API estiver correta, você receberá uma resposta com o seguinte padrão:

Resposta 4.2

{
    "data": {
        "expireAt": "2024-09-24T17:18:51.697Z",
        "snippet": "<script to run on a client's VPS>"
    }
}

5. Executando o Snippet no VPS de um Cliente

O último passo é executar o snippet da string de conexão recebido na etapa anterior no VPS do cliente. Após concluir esses passos, o VPS com WP Guardian estará pronto para uso. Parabéns!

Nota

O snippet conecta automaticamente o VPS de um cliente ao WP Guardian.
Caso, por algum motivo, o snippet falhar, você pode resolver o problema [conectando um VPS ao WP Guardian manualmente]( https://docs.wpguardian.io/index.html#connecting-servers-to-wp-guardian){target=_blank}.
Back to top