LOCAL oServer_2, v_token, v_response, v_boundary, v_body, v_number, v_filePath // Definindo o token de autenticação v_token := "seu_token_aqui" // Definindo o número e o caminho do arquivo v_number := "5599999999999" v_filePath := "caminho/do/seu/arquivo.jpg" // Gerando um boundary para separar as partes no multipart/form-data v_boundary := "---------------------------" + STRTRAN(TRANSFORM(TSECONDS()), ".", "") // Criando a requisição HTTP usando MSXML2.ServerXMLHTTP oServer_2 := win_OleCreateObject("MSXML2.ServerXMLHTTP") // Abrindo a conexão POST oServer_2:Open("POST", "https://api.chatbotmaster.com.br/api/messages/send", .F.) // Definindo os cabeçalhos oServer_2:SetRequestHeader("Authorization", "Bearer " + v_token) oServer_2:SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + v_boundary) // Montando o corpo da requisição com as partes do multipart/form-data v_body := "" v_body += "--" + v_boundary + CRLF v_body += 'Content-Disposition: form-data; name="number"' + CRLF + CRLF v_body += v_number + CRLF v_body += "--" + v_boundary + CRLF v_body += 'Content-Disposition: form-data; name="medias"; filename="' + RIGHT(v_filePath, LEN(v_filePath) - RAT("/", v_filePath)) + '"' + CRLF v_body += 'Content-Type: image/jpeg' + CRLF + CRLF // Lendo o conteúdo do arquivo v_body += MEMOREAD(v_filePath) + CRLF v_body += "--" + v_boundary + "--" + CRLF // Enviando a requisição com o corpo oServer_2:Send(v_body) // Verificando a resposta do servidor IF oServer_2:status == 200 v_response := oServer_2:responseText ? "Mensagem enviada com sucesso: ", v_response ELSE ? "Erro: ", oServer_2:status, oServer_2:statusText ENDIF