Enviando mensagem pelo WhatsApp

112

Já que encontrei alguns posts mais antigos, que dizem que o whatsapp não suporta isso, queria saber se algo mudou e se existe uma maneira de abrir um 'chat' do whatsapp com um número que estou enviando por meio de uma intent?

Diego
fonte
você tentou compartilhar provedor de ação?
Basim Sherif
Parece interessante, mas como isso funcionaria. Posso compartilhar uma string (phonenumber) e ela abrirá o whatsapp (ou o seletor?) Você pode dar um pequeno exemplo?
Diego,
2
embora haja a intenção ACTION_SENDTO no whatsapp, ele não é executado (corretamente), portanto, não é possível fazer para um número de telefone específico [foi o que eu encontrei]
Manan Sharma
2
Possível duplicata de Enviar texto para contato específico (whatsapp)
Rishabh Maurya
ainda estou ansioso para anexar a imagem e o texto ao mesmo tempo, mas não
tive

Respostas:

180

ATUALIZAÇÃO Consulte https://faq.whatsapp.com/en/android/26000030/?category=5245251

O recurso Click to Chat do WhatsApp permite que você inicie um bate-papo com alguém sem ter o número do telefone salvo na agenda do seu telefone. Contanto que você saiba o número de telefone dessa pessoa, você pode criar um link que permitirá que você inicie um bate-papo com ela.

Use: https://wa.me/15551234567

Não use: https://wa.me/+001-(555)1234567

Exemplo: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

Resposta original Aqui está a solução

public void onClickWhatsApp(View view) {

    PackageManager pm=getPackageManager();
    try {

        Intent waIntent = new Intent(Intent.ACTION_SEND);
        waIntent.setType("text/plain");
        String text = "YOUR TEXT HERE";

        PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);
        //Check if package exists or not. If not then code 
        //in catch block will be called
        waIntent.setPackage("com.whatsapp");

        waIntent.putExtra(Intent.EXTRA_TEXT, text);
        startActivity(Intent.createChooser(waIntent, "Share with"));

   } catch (NameNotFoundException e) {
        Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                .show();
   }  

}

Consulte também http://www.whatsapp.com/faq/en/android/28000012

Manan Sharma
fonte
Como integrar com mensagens? para que o usuário possa escolher whatsapp ou mensagem
Srikanth Pai
33
se já temos os dados de contato é possível adicionar os dados de contato e enviar mensagem sem precisar tocar no contato para selecionar e clicar em ok para enviar ??
user1492955
4
A fonte @MananMerevikSharma não mente ( android.googlesource.com/platform/frameworks/base/+/refs/heads/… ). Além disso, o princípio básico de Java: um objeto vive até que não haja mais nenhuma referência a ele.
JRomero
1
@MananMerevikSharma -1. Ele não "se transforma em um ponteiro nulo". A outra parte nunca pode ser alcançada. Quando o WhatsApp não está instalado, o Intent ainda é enviado, mas uma caixa de diálogo é aberta informando que não há aplicativo correspondente. Isso significa que você não está fornecendo nenhuma maneira de verificar se o WhatsApp está instalado ou não.
0101100101
64

Com este código você pode abrir o chat do Whatsapp com o número fornecido.

void openWhatsappContact(String number) {
    Uri uri = Uri.parse("smsto:" + number);
    Intent i = new Intent(Intent.ACTION_SENDTO, uri);
    i.setPackage("com.whatsapp");  
    startActivity(Intent.createChooser(i, ""));
}
user2957782
fonte
3
@ user2957782 eu segui este senhor, mas quando clico no botão para iniciar meu WhatsApp diz "Nenhum aplicativo pode executar esta ação"
arjun narahari
@VihaanVerma você pode compartilhar como você fez isso funcionar? Implementei o mesmo código contra o WhatsApp versão 2.11.56021 e não estou recebendo nada ...
Alamgir Mand
1
Marcado, ele me envia para todas as listas de bate-papo, não para a janela de bate-papo de um número específico.
Darpan
8
Funciona apenas quando você tem esse número em sua lista de bate-papo ou lista de contatos.
Anshul Tyagi
1
em vez de startActivity(Intent.createChooser(i, ""));usar startActivity(i);para abrir diretamente o chat numérico fornecido. 1. Testado em Samsung J7 prime está funcionando. 2. O número não estava na minha lista de contatos nem na minha lista de chat. 3. se o número não estiver usando o whatsapp, uma caixa de diálogo aparecerá perguntando se eu gostaria de convidar esse contato no whatsapp. Acho que é a melhor solução se você deseja fornecer suporte de contato do Whatsapp para os usuários do seu aplicativo.
Muhammad Saqib de
25

Eu encontrei a seguinte solução, primeiro você vai precisar do id do whatsapp:

Correspondendo a relatórios de alguns outros tópicos aqui e em outros fóruns, o nome de login que encontrei era algum tipo de: código de área internacional sem os 0's ou + no início + número de telefone sem o primeiro 0 + @ s.whatsapp.net

Por exemplo, se você mora na Holanda e tem o número de telefone 0612325032, seria [email protected] -> +31 para a Holanda sem os 0s ou + e o número de telefone sem 0.

public void sendWhatsAppMessageTo(String whatsappid) {

Cursor c = getSherlockActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI,
        new String[] { ContactsContract.Contacts.Data._ID }, ContactsContract.Data.DATA1 + "=?",
        new String[] { whatsappid }, null);
c.moveToFirst();

Intent whatsapp = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
c.close();

 if (whatsapp != null) {

startActivity(whatsapp);      

} else {
        Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                .show();
//download for example after dialog
                Uri uri = Uri.parse("market://details?id=com.whatsapp");
                Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
    }

}
Diego
fonte
Estou tentando este código, mas ele me diz que getSherlockActivity () é indefinido. Como consertar isto ??
Eman87
2
@ Eman87 Diego está usando Action Bar Sherlock, então o método. Obtenha o escopo de sua atividade no lugar de getSherlockActivity ().
Manan Sharma
4
Não há nenhum ponto em if (whatsapp != null)como 2 linhas acima de você Intent whatsapp = new Intent(...).
Carcamano
2
Esta é uma boa opção para abrir a janela de bate-papo diretamente se a pessoa existir em Contatos. Existe uma maneira de fazer o mesmo para um novo número que não existe em nossos contatos?
MohammedYakub Moriswala
1
Você precisa adicionar <uses-permission android:name="android.permission.READ_CONTACTS" />permissão emAndroidManifest.xml
Pratik Butani
16

Isso deve funcionar quer o Whatsapp esteja instalado ou não.

boolean isWhatsappInstalled = whatsappInstalledOrNot("com.whatsapp");
if (isWhatsappInstalled) {
    Uri uri = Uri.parse("smsto:" + "98*********7")
    Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Hai Good Morning");
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent);
} else {
    Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT).show();
    Uri uri = Uri.parse("market://details?id=com.whatsapp");
    Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(goToMarket);

}

private boolean whatsappInstalledOrNot(String uri) {
    PackageManager pm = getPackageManager();
    boolean app_installed = false;
    try {
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
        app_installed = true;
    } catch (PackageManager.NameNotFoundException e) {
        app_installed = false;
    }
    return app_installed;
}
Satheesh
fonte
11
Exceção de atividade não fornecida, mesmo quando o Whatsapp instalado
itzhar
2
Nenhuma atividade encontrada para manipular o Intent {act = android.intent.action.SENDTO typ = text / plain pkg = com.whatsapp (has extras)}
Rajesh
2
Você precisa remover esta linha para trabalhar com você sendIntent.setType ("text / plain");
MSaudi
2
remover sendIntent.setType ("text / plain") faz com que a exceção Activity Not Found não seja lançada, mas agora o texto não é adicionado como mensagem
Rik van Velzen
parece que não é mais possível, a atividade que recebe o intent tem alguma referência a "sms_body", mas não consigo fazer funcionar
sherpya
15

Solução simples, tente isso.

String phoneNumberWithCountryCode = "+62820000000";
String message = "Hallo";

startActivity(
    new Intent(Intent.ACTION_VIEW,
        Uri.parse(
            String.format("https://api.whatsapp.com/send?phone=%s&text=%s", phoneNumberWithCountryCode, message)
        )
    )
);
Latief Anwar
fonte
10

Testado em Marshmallow S5 e funciona!

    Uri uri = Uri.parse("smsto:" + "phone number with country code");
    Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent); 

Isso abrirá um bate-papo direto com uma pessoa, se o WhatsApp não estiver instalado, isso gerará uma exceção , se o número de telefone não for conhecido pelo WhatsApp, eles se oferecerão para enviar o convite via sms ou mensagem sms simples

Ilya Gazman
fonte
e o 'botão enviar'? Podemos fazer isso programaticamente também ...?
gumuruh
3

O código a seguir é usado pelo Google Now App e NÃO funcionará com nenhum outro aplicativo.

Estou escrevendo este post porque me deixa com raiva que o WhatsApp não permite que nenhum outro desenvolvedor envie mensagens diretamente, exceto para o Google.

E eu quero que outros desenvolvedores autônomos saibam que esse tipo de cooperação está acontecendo, enquanto o Google continua falando sobre "aberto para qualquer pessoa" e o WhatsApp diz que não quer fornecer nenhum acesso aos desenvolvedores.

Recentemente, o WhatsApp adicionou um Intent especialmente para o Google Now, que deve ser semelhante a este:

Intent intent = new Intent("com.google.android.voicesearch.SEND_MESSAGE_TO_CONTACTS");
intent.setPackage("com.whatsapp");
intent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.VoiceMessagingActivity"));

intent.putExtra("com.google.android.voicesearch.extra.RECIPIENT_CONTACT_CHAT_ID", number);
intent.putExtra("android.intent.extra.TEXT", text);
intent.putExtra("search_action_token", ?????);

Também pude descobrir que "search_action_token" é um PendingIntent que contém um IBinder-Object, que é enviado de volta ao Google App e verificado, se foi criado pelo Google Now.

Caso contrário, o WhatsApp não aceitará a mensagem.

Falcão
fonte
Interessante! mas você pode explicar mais sobre "search_action_token" como podemos obtê-lo e implementá-lo.
Bilal Mustafa,
APK com.google.android.googlequicksearchbox Classe com.google.android.search.verification.api.SearchActionVerificationService Método createGoogleVerificationIntent
black-hawk
3

Atualmente, a única API oficial para a qual você pode fazer uma GETsolicitação:

https://api.whatsapp.com/send?phone=919773207706&text=Hello

De qualquer forma, já existe um programa secreto de API sendo executado pelo WhatsApp

Zameer
fonte
1
Embora este link possa responder à pergunta, é melhor incluir as partes essenciais da resposta aqui e fornecer o link para referência. As respostas somente com link podem se tornar inválidas se a página vinculada mudar. - Da avaliação
Kumar Saurabh
1
@KumarSaurabh Este não é um link, é uma solicitação GET
Zameer
3

use este código de linha única para enviar mensagem pelo WhatsApp

//NOTE : please use with country code first 2digits without plus signed
try {
      String mobile = "911234567890";
      String msg = "Its Working";
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://api.whatsapp.com/send?phone=" + mobile + "&text=" + msg)));
      }catch (Exception e){
        //whatsapp app not install
     }
milan pithadia
fonte
2

Isso funciona para mim:

PackageManager pm = context.getPackageManager();
try {
    pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES);
    Intent intent = new Intent();
            intent.setComponent(new ComponentName(packageName,
                    ri.activityInfo.name));
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, element);

} catch (NameNotFoundException e) {
    ToastHelper.MakeShortText("Whatsapp have not been installed.");
}
Cabezas
fonte
2

Isto é o que funcionou para mim :

        Uri uri = Uri.parse("https://api.whatsapp.com/send?phone=" + "<number>" + "&text=" + "Hello WhatsApp!!");
        Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(sendIntent);
maximus
fonte
2

Use o URL direto do Whatsapp

String url = "https://api.whatsapp.com/send?phone="+number;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
Pierre Alexandre
fonte
1

isso é muito demorado, mas difícil de trabalhar. aproveite seu código :)

 //method used to show IMs
private void show_custom_chooser(String value) {
    List<ResolveInfo> list = null;
    final Intent email = new Intent(Intent.ACTION_SEND);
    email.setData(Uri.parse("sms:"));
    email.putExtra(Intent.EXTRA_TEXT, "" + value);
    email.setType("text/plain"); // vnd.android-dir/mms-sms

    WindowManager.LayoutParams WMLP = dialogCustomChooser.getWindow()
            .getAttributes();
    WMLP.gravity = Gravity.CENTER;
    dialogCustomChooser.getWindow().setAttributes(WMLP);
    dialogCustomChooser.getWindow().setBackgroundDrawable(
            new ColorDrawable(android.graphics.Color.TRANSPARENT));
    dialogCustomChooser.setCanceledOnTouchOutside(true);
    dialogCustomChooser.setContentView(R.layout.about_dialog);
    dialogCustomChooser.setCancelable(true);
    ListView lvOfIms = (ListView) dialogCustomChooser
            .findViewById(R.id.listView1);
    PackageManager pm = getPackageManager();
    List<ResolveInfo> launchables = pm.queryIntentActivities(email, 0);
    // ////////////new
    list = new ArrayList<ResolveInfo>();
    for (int i = 0; i < launchables.size(); i++) {
        String string = launchables.get(i).toString();
        Log.d("heh", string);
//check only messangers
        if (string.contains("whatsapp")) {
            list.add(launchables.get(i));
        }
    }
    Collections.sort(list, new ResolveInfo.DisplayNameComparator(pm));
    int size = launchables.size();
    adapter = new AppAdapter(pm, list, MainActivity.this);
    lvOfIms.setAdapter(adapter);
    lvOfIms.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            ResolveInfo launchable = adapter.getItem(position);
            ActivityInfo activity = launchable.activityInfo;
            ComponentName name = new ComponentName(
                    activity.applicationInfo.packageName, activity.name);
            email.addCategory(Intent.CATEGORY_LAUNCHER);
            email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            email.setComponent(name);
            startActivity(email);
            dialogCustomChooser.dismiss();
        }
    });
    dialogCustomChooser.show();

}
John smith
fonte
1

Estou muito atrasado aqui, mas acredito que hoje em dia temos soluções mais curtas e melhores para enviar mensagens pelo WhatsApp.

Você pode usar o seguinte para chamar o seletor de sistema e, em seguida, escolher qual aplicativo usará para compartilhar o que quiser.

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

Se você realmente precisa enviar pelo WhatsApp, tudo o que você precisa fazer é o seguinte (você irá pular o seletor de sistema)

 Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    // Put this line here
    sendIntent.setPackage("com.whatsapp");
    //
    startActivity(sendIntent);

Se precisar de mais informações, você pode encontrá-las aqui: FAQ do WhatsApp

Vai
fonte
1

Como a documentação diz, você pode apenas usar um URL como:

https://wa.me/15551234567

Onde o último segmento é o número no formato E164

Uri uri = Uri.parse("https://wa.me/15551234567");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
GVillani82
fonte
1
private fun sendWhatsappMessage(phoneNumber:String, text:String) {        
  val url = if (Intent().setPackage("com.whatsapp").resolveActivity(packageManager) != null) {
        "whatsapp://send?text=Hello&phone=$phoneNumber"
    } else {
        "https://api.whatsapp.com/send?phone=$phoneNumber&text=$text"
    }

    val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
    startActivity(browserIntent)
}

Esta é uma maneira muito mais fácil de conseguir isso. Este código verifica se o Whatsapp está instalado no dispositivo. Se estiver instalado, ele ignora o seletor de sistema e vai para o contato no whatsapp e pré-exibe o texto no chat. Se não estiver instalado, ele abre o link do Whatsapp no ​​seu navegador.

Adekola Akano
fonte
1

Você vai querer usar um URL no seguinte formato ...

https://api.whatsapp.com/send?text=text

Depois, você pode fazer com que ele envie o texto que desejar. Você também tem a opção de especificar um número de telefone ...

https://api.whatsapp.com/send?text=text&phone=1234

O que você NÃO PODE FAZER é usar o seguinte:

https://wa.me/send?text=text

Você vai ter...

Não foi possível encontrar a página que você estava procurando

wa.me, porém, funcionará se você fornecer um número de telefone e uma mensagem de texto. Mas, na maioria das vezes, se você está tentando fazer um link de compartilhamento, você realmente não quer indicar o número de telefone, porque deseja que o usuário selecione alguém. Nesse caso, se você não fornecer o número e usar wa.mecomo URL, todos os seus links de compartilhamento falharão. Por favor, use app.whatsapp.com.

HoldOffHunger
fonte
0

Verifique este código,

    public void share(String subject,String text) {
     final Intent intent = new Intent(Intent.ACTION_SEND);

String score=1000;
     intent.setType("text/plain");
     intent.putExtra(Intent.EXTRA_SUBJECT, score);
     intent.putExtra(Intent.EXTRA_TEXT, text);

     startActivity(Intent.createChooser(intent, getString(R.string.share)));
}
Basim Sherif
fonte
0

Isso funciona para mim:

public static void shareWhatsApp(Activity appActivity, String texto) {

    Intent sendIntent = new Intent(Intent.ACTION_SEND);     
    sendIntent.setType("text/plain");
    sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, texto);

    PackageManager pm = appActivity.getApplicationContext().getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(sendIntent, 0);
    boolean temWhatsApp = false;
    for (final ResolveInfo info : matches) {
      if (info.activityInfo.packageName.startsWith("com.whatsapp"))  {
          final ComponentName name = new ComponentName(info.activityInfo.applicationInfo.packageName, info.activityInfo.name);
          sendIntent.addCategory(Intent.CATEGORY_LAUNCHER);
          sendIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK);
          sendIntent.setComponent(name);
          temWhatsApp = true;
          break;
      }
    }               

    if(temWhatsApp) {
        //abre whatsapp
        appActivity.startActivity(sendIntent);
    } else {
        //alerta - você deve ter o whatsapp instalado
        Toast.makeText(appActivity, appActivity.getString(R.string.share_whatsapp), Toast.LENGTH_SHORT).show();
    }
}
user3124158
fonte
0

pegue o número de contato para quem deseja enviar a mensagem e crie uri para o whatsapp, aqui c é um Cursor retornando o contato selecionado.

Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
i.setType("text/plain");
i.setPackage("com.whatsapp");           // so that only Whatsapp reacts and not the chooser
i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
i.putExtra(Intent.EXTRA_TEXT, "I'm the body.");
startActivity(i);
Kiran Maniya
fonte
0

Da documentação

Para criar seu próprio link com uma mensagem pré-preenchida que aparecerá automaticamente no campo de texto de um chat, use https://wa.me/whatsappphonenumber/?text=urlencodedtext onde whatsappphonenumber é um número de telefone completo em formato internacional e URL -encodedtext é a mensagem pré-preenchida codificada por URL.

Exemplo: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

Exemplo de código

val phoneNumber = "13492838472"
    val text = "Hey, you know... I love StackOverflow :)"
    val uri = Uri.parse("https://wa.me/$phoneNumber/?text=$text")
    val sendIntent = Intent(Intent.ACTION_VIEW, uri)
    startActivity(sendIntent)
Gastón Saillén
fonte
-1

A API a seguir pode ser usada em c ++, conforme mostrado em meu artigo .

Você precisa definir várias constantes:

//
#define    GroupAdmin                <YOUR GROUP ADMIN MOBILE PHONE>
#define GroupName                <YOUR GROUP NAME>
#define CLIENT_ID                <YOUR CLIENT ID>
#define CLIENT_SECRET            <YOUR CLIENT SECRET>

#define GROUP_API_SERVER        L"api.whatsmate.net"
#define GROUP_API_PATH          L"/v3/whatsapp/group/text/message/12"
#define IMAGE_SINGLE_API_URL    L"http://api.whatsmate.net/v3/whatsapp/group/image/message/12"

//

Então você se conecta ao endpoint da API.

hOpenHandle = InternetOpen(_T("HTTP"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hOpenHandle == NULL)
{
    return false;
}

hConnectHandle = InternetConnect(hOpenHandle,
    GROUP_API_SERVER,
    INTERNET_DEFAULT_HTTP_PORT,
    NULL, NULL, INTERNET_SERVICE_HTTP,
    0, 1);

if (hConnectHandle == NULL)
{
    InternetCloseHandle(hOpenHandle);
    return false;
}

Em seguida, envie o cabeçalho e o corpo e aguarde o resultado que precisa ser “OK”.

Etapa 1 - abrir uma solicitação HTTP:

const wchar_t *AcceptTypes[] = { _T("application/json"),NULL };
HINTERNET hRequest = HttpOpenRequest(hConnectHandle, _T("POST"), GROUP_API_PATH, NULL, NULL, AcceptTypes, 0, 0);

if (hRequest == NULL)
{
    InternetCloseHandle(hConnectHandle);
    InternetCloseHandle(hOpenHandle);
    return false;
}

Etapa 2 - enviar o cabeçalho:

std::wstring HeaderData;

HeaderData += _T("X-WM-CLIENT-ID: ");
HeaderData += _T(CLIENT_ID);
HeaderData += _T("\r\nX-WM-CLIENT-SECRET: ");
HeaderData += _T(CLIENT_SECRET);
HeaderData += _T("\r\n");
HttpAddRequestHeaders(hRequest, HeaderData.c_str(), HeaderData.size(), NULL);

Etapa 3 - enviar a mensagem:

std::wstring WJsonData;
WJsonData += _T("{");
WJsonData += _T("\"group_admin\":\"");
WJsonData += groupAdmin;
WJsonData += _T("\",");
WJsonData += _T("\"group_name\":\"");
WJsonData += groupName;
WJsonData += _T("\",");
WJsonData += _T("\"message\":\"");
WJsonData += message;
WJsonData += _T("\"");
WJsonData += _T("}");

const std::string JsonData(WJsonData.begin(), WJsonData.end());

bResults = HttpSendRequest(hRequest, NULL, 0, (LPVOID)(JsonData.c_str()), JsonData.size());

Agora é só verificar o resultado:

TCHAR StatusText[BUFFER_LENGTH] = { 0 };
DWORD StatusTextLen = BUFFER_LENGTH;
HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_TEXT, &StatusText, &StatusTextLen, NULL);
bResults = (StatusTextLen && wcscmp(StatusText, L"OK")==FALSE);
Michael Haephrati
fonte