Chat App Message Service oferece APIs para criar modelos, enviar mensagens individuais e enviar mensagens em massa. Este tópico usa o WhatsApp como exemplo. Outros tipos de canal seguem um processo semelhante.
Você pode chamar as APIs do Chat App Message Service das seguintes formas:
-
Alibaba Cloud OpenAPI Portal
Depure APIs e obtenha exemplos de solicitação SDK por meio de uma interface interativa. Ideal para desenvolvedores que estão começando na Alibaba Cloud.
-
SDKs estão disponíveis para diversas linguagens de programação, como Java, Go, PHP e Python. Usar um SDK para integrar o Chat App Message Service aumenta a eficiência do desenvolvimento.
-
Encapsulamento personalizado (não recomendado)
Os SDKs da Alibaba Cloud gerenciam assinatura de solicitações, timeouts e novas tentativas. Recomendamos usar o SDK para reduzir custos de desenvolvimento. Caso precise fazer chamadas diretas à API, consulte SendChatappMessage e Request syntax and signature method V3.
Para integrar o Chat App Message Service com um SDK, revise as APIs no OpenAPI Portal e siga o processo abaixo para integrar o Chat App Message Service:
Preparativos
Preparativo | Descrição | Referência |
Registre uma conta Alibaba Cloud Conclua a verificação de identidade corporativa |
| |
Ative o service | Faça login no Chat App Message Service console e ative o service. | - |
Configure permissões de usuário | Contas Alibaba Cloud possuem permissões amplas. Use um usuário RAM para chamadas de API e operações diárias. Verifique as permissões de um usuário fazendo login no RAM console e clicando no nome do usuário RAM. Certifique-se de que o usuário RAM que fará as chamadas de API tenha as permissões necessárias para o Chat App Message Service:
| |
AccessKey ID | Faça login no RAM console e clique em nome do usuário RAM para visualizar o AccessKey ID. | |
AccessKey secret | O AccessKey secret é exibido apenas no momento da criação. Se você não tiver um backup local, crie um novo par de AccessKey. |
Configuração do ambiente
Este exemplo usa Java. Para outras linguagens e instalação do SDK, consulte Installation Method.
Verifique se o Java 8+ está instalado. Para instruções detalhadas, consulte Set up a Java development environment on Windows.
-
Instale o SDK configurando as dependências do Maven.
No arquivo
pom.xmldo seu projeto Maven, adicione o seguinte trecho em<dependencies>e substituathe-latest-versionpelo número da versão mais recente. Em seguida, recarregue as dependências do Maven.<dependency> <groupId>com.aliyun</groupId> <artifactId>alibabacloud-cams20200606</artifactId> <!-- Replace 'the-latest-version' with the latest version number: https://mvnrepository.com/artifact/com.aliyun/alibabacloud-cams20200606 --> <version>the-latest-version</version> </dependency> Configure variáveis de ambiente: Para evitar codificar seu AccessKey pair diretamente no código, armazene as credenciais em environment variables. Após a configuração, reinicie sua IDE, interface de linha de comando e outros aplicativos para carregar as novas variáveis.
Configure um proxy (opcional). Para rotear solicitações por meio de um proxy, configure-o no SDK. Proxy configuration.
Informações básicas da API
|
Versão da API |
|
|
RPC |
|
|
(Endpoint) |
Endpoint público: cams.ap-southeast-1.aliyuncs.com |
Revise os parâmetros da API antes de fazer chamadas. Online Debugging | API Overview
Fluxo de trabalho
-
Crie um canal: Acesse a página Channel Management.
Um canal é o tipo de caminho usado para enviar mensagens. Canais suportados: WhatsApp, Viber, Messenger, Instagram e Email.
Cada canal suporta apenas seu tipo de mensagem correspondente.
-
Registre e vincule uma WABA: Chame a API ChatappBindWaba para vincular uma WhatsApp Business Account (WABA).
É necessário ter uma WABA registrada antes de chamar esta API. Não é possível registrar WABAs via API — faça o registro pelo console do Chat App Messaging Service.
Uma WABA (WhatsApp Business Account) é obrigatória para enviar mensagens comerciais no WhatsApp. WABAs verificadas exibem um selo que aumenta a confiança do cliente, melhora a imagem da marca e reduz interferências de mensagens fraudulentas.
-
Adicione um número: Chame a API AddChatappPhoneNumber para adicionar um número. Este número de telefone será usado para enviar mensagens do WhatsApp.
Sincronize os números da sua WABA vinculada e aprovada com a plataforma Business Manager (BM) usando a API ChatappSyncPhoneNumber.
Migre números de telefone de outros BSPs para a Alibaba Cloud. Os números migrados mantêm o nome de exibição, classificação de qualidade, limites de mensagens, status de conta comercial oficial e todos os modelos de mensagens de alta qualidade aprovados anteriormente. Use a API CreateChatappMigrationInitiate para iniciar a migração.
-
Verifique um número: Chame a API GetChatappVerifyCode para obter um código de verificação para o número. Em seguida, use a operação da API ChatappVerifyAndRegistr para verificar o número. Após a verificação, use a operação da API GetPhoneNumberVerificationStatus para consultar o status da verificação.
Se estiver usando um número de telefone migrado, chame a API GetMigrationVerifyCode para obter um código de verificação. Depois, chame a API ChatappMigrationVerified para verificar o número migrado.
-
Crie e projete um modelo: Chame a API CreateChatappTemplate para criar um modelo. Após a criação, o modelo é enviado automaticamente para revisão. Em seguida, use a API GetChatappTemplateDetail para consultar os detalhes da revisão do modelo.
Monitore o status da revisão após o envio. As revisões geralmente são concluídas em cinco minutos, mas podem levar mais de 24 horas.
A categoria de um modelo de mensagem do WhatsApp pode mudar automaticamente durante a revisão. Ao chamar a API CreateChatappTemplate, defina CategoryChangePaused como true para pausar o envio quando a categoria for alterada. WhatsApp message template category changes and sending controls.
-
Envie mensagens: Chame a API SendChatappMessage ou SendChatappMassMessage para enviar mensagens.
Certifique-se de que sua conta tenha saldo suficiente antes de enviar. Pricing.
Visualize detalhes de envio de mensagens: Receba relatórios das mensagens enviadas por meio do callback ChatAppStatus (Simple Message Queue | HTTP URL).
Receba mensagens originadas no celular (MO): Receba mensagens recebidas por meio do callback ChatAppInbound (Simple Message Queue | HTTP URL).
Para mais informações sobre operações de API, consulte API overview .
Código de exemplo
O exemplo a seguir envia uma mensagem chamando a API SendChatappMessage. Preencha os parâmetros conforme indicado nos comentários.
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>Initialize the client using credentials.</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.cams20200606.Client createClient() throws Exception {
// For production environment, we recommend a more secure method that does not hardcode the AccessKey. For details, visit https://www.alibabacloud.com/help/doc-detail/2542825.html.
com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setCredential(credential);
// The service endpoint. For details, visit https://api.alibabacloud.com/product/cams.
config.endpoint = "cams.ap-southeast-1.aliyuncs.com";
return new com.aliyun.cams20200606.Client(config);
}
public static void main(String[] args_) throws Exception {
com.aliyun.cams20200606.Client client = Sample.createClient();
java.util.Map<String, String> templateParams = TeaConverter.buildMap(
//Replace these with the variable names and values from your template
new TeaPair("name", "Bob"),
new TeaPair("sex", "Male")
);
com.aliyun.cams20200606.models.SendChatappMessageRequest sendChatappMessageRequest = new com.aliyun.cams20200606.models.SendChatappMessageRequest()
//Parameters for sending the message.
.setTemplateParams(templateParams)
.setTemplateCode("XXXXXXXXXXX")
.setChannelType("whatsapp")
.setType("template")
.setLanguage("en")
.setFrom("XXXXXXXX")
.setTo("XXXXXXXX")
.setCustSpaceId("XXXXXXXXXXX");
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
try {
// If you copy this code to run, print the API return value yourself.
client.sendChatappMessageWithOptions(sendChatappMessageRequest, runtime);
} catch (TeaException error) {
// This is for printing and demonstration purposes only. Handle exceptions carefully and do not ignore them in your project.
// Error message.
System.out.println(error.getMessage());
// Diagnostic address.
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// This is for printing and demonstration purposes only. Handle exceptions carefully and do not ignore them in your project.
// Error message.
System.out.println(error.getMessage());
// Diagnostic address
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
Visite o OpenAPI Portal para exemplos completos de SDK em outras linguagens. Para fazer chamadas diretas à API, consulte SendChatappMessage e Request syntax and signature method V3.