Wysyłanie wiadomości przez WhatsApp


112

Odkąd znalazłem kilka starszych postów, które mówią, że WhatsApp tego nie obsługuje, zastanawiałem się, czy coś się zmieniło i czy istnieje sposób na otwarcie czatu WhatsApp z numerem, który wysyłam przez intencję?


czy próbowałeś udostępniać dostawcę akcji?
— Basim Sherif,

Brzmi interesująco, ale jak by to działało. Czy mogę udostępnić ciąg (numer telefonu) i czy otworzy on WhatsApp (lub selektor?) Czy możesz podać mały przykład?
— Diego

2
chociaż w WhatsApp jest intencja ACTION_SENDTO, nie jest ona wykonywana (prawidłowo), dlatego nie można zrobić z określonym numerem telefonu [to właśnie znalazłem]
— Manan Sharma


Nadal nie mogę się doczekać, aby dołączyć obraz i tekst w tym samym czasie, ale nie znalazłem szczęścia, westchnij :(
— gumuruh

Odpowiedzi:


180

AKTUALIZACJA Zobacz https://faq.whatsapp.com/en/android/26000030/?category=5245251

Funkcja WhatsApp Click to Chat umożliwia rozpoczęcie czatu z kimś bez zapisywania jego numeru telefonu w książce adresowej telefonu. Jeśli znasz numer telefonu tej osoby, możesz utworzyć link, który pozwoli Ci rozpocząć z nią czat.

Użyj: https://wa.me/15551234567

Nie używaj: https://wa.me/+001-(555)1234567

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

Oryginalna odpowiedź Oto rozwiązanie

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();
   }  

}

Zobacz też http://www.whatsapp.com/faq/en/android/28000012


Jak zintegrować się z komunikatorami? aby użytkownik mógł wybrać WhatsApp lub wiadomości
— Srikanth Pai

33
jeśli mamy już dane kontaktowe, czy możliwe jest dodanie danych kontaktowych i wysłanie wiadomości bez konieczności dotykania kontaktu, aby wybrać i kliknąć OK, aby wysłać?
— user1492955


4
Źródło @MananMerevikSharma nie kłamie ( android.googlesource.com/platform/frameworks/base/+/refs/heads/ ... ). Dodatkowo podstawowa zasada Javy: obiekt żyje, dopóki nie ma do niego żadnych odniesień.
— JRomero

1
@MananMerevikSharma -1. Nie zmienia się w zerowy wskaźnik. Innej części nigdy nie można osiągnąć. Gdy WhatsApp nie jest zainstalowany, intencja jest nadal wysyłana, ale otwiera się okno dialogowe z informacją, że nie ma pasującej aplikacji. Oznacza to, że nie dajesz możliwości sprawdzenia, czy WhatsApp jest zainstalowany, czy nie.
— 0101100101

64

Za pomocą tego kodu możesz otworzyć czat WhatsApp z podanym numerem.

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, ""));
}

3
@ user2957782 Śledziłem to proszę pana, ale kiedy klikam przycisk, aby uruchomić
— WhatsApp, pojawia się komunikat

@VihaanVerma czy możesz podzielić się tym, jak to działa? Zaimplementowałem ten sam kod dla WhatsApp w wersji 2.11.56021 i nic nie dostaję ...
— Alamgir Mand

1
Zaznaczone, wysyła mnie do wszystkich list czatów, a nie do okna czatu określonego numeru.
— Darpan

8
Działa tylko wtedy, gdy masz ten numer na liście czatu lub liście kontaktów.
— Anshul Tyagi

1
zamiast startActivity(Intent.createChooser(i, ""));używać startActivity(i);do bezpośrednio otwartego czatu numerycznego. 1. Testowany na Samsung J7 prime działa. 2. numeru nie było na mojej liście kontaktów ani na liście czatu. 3. jeśli numer nie korzysta z WhatsApp, pojawi się okno dialogowe z pytaniem, czy chciałbym zaprosić ten kontakt do WhatsApp. Myślę, że to najlepsze rozwiązanie, jeśli chcesz zapewnić użytkownikom aplikacji pomoc w zakresie kontaktu z WhatsApp.
— Muhammad Saqib

25

Znalazłem następujące rozwiązanie, najpierw potrzebujesz identyfikatora WhatsApp:

Zgodnie z raportami z innych wątków tutaj i na innych forach nazwa logowania, którą znalazłem, była w pewnym sensie: międzynarodowy numer kierunkowy bez zer lub + na początku + numer telefonu bez pierwszego 0 + @ s.whatsapp.net

Na przykład, jeśli mieszkasz w Holandii i masz numer telefonu 0612325032, będzie to 31612325023@s.whatsapp.net -> +31 dla Holandii bez 0 lub + oraz numer telefonu bez 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);
    }

}

Próbuję tego kodu, ale mówi mi, że getSherlockActivity () jest niezdefiniowane. jak to naprawić ??
— Eman87,

2
@ Eman87 Diego używa Action Bar Sherlock, więc metoda. Uzyskaj zakres swojej aktywności zamiast getSherlockActivity ().
— Manan Sharma

4
Nie ma sensu, if (whatsapp != null)jak zrobiłaś to w 2 linijkach powyżej Intent whatsapp = new Intent(...).
— Carcamano,

2
Jest to dobra opcja do bezpośredniego otwierania okna czatu, jeśli dana osoba istnieje w Kontaktach. Czy jest sposób, aby zrobić to samo dla nowego numeru, którego nie ma w naszych kontaktach?
— MohammedYakub Moriswala

1
Musisz dodać <uses-permission android:name="android.permission.READ_CONTACTS" />pozwolenie wAndroidManifest.xml
— Pratik Butani

16

Powinno to działać niezależnie od tego, czy Whatsapp jest zainstalowany, czy nie.

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;
}

11

2
Nie znaleziono działania obsługującego zamiar {act = android.intent.action.SENDTO typ = text / plain pkg = com.whatsapp (has extras)}
— Rajesh

2
Musisz usunąć tę linię, aby pracować z tobą sendIntent.setType ("text / plain");
— MSaudi

2
usunięcie sendIntent.setType ("text / plain") zapobiega wyrzucaniu wyjątku Activity Not Found, ale teraz tekst nie jest dodawany jako wiadomość
— Rik van Velzen

wygląda na to, że nie jest to już możliwe, działanie, które otrzymuje intencję, ma odniesienie do „sms_body”, ale nie mogę tego zrobić
— sherpya

15

Proste rozwiązanie, spróbuj tego.

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)
        )
    )
);

10

Testowane na Marshmallow S5 i działa!

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

Spowoduje to otwarcie bezpośredniego czatu z osobą, jeśli WhatsApp nie zostanie zainstalowany, spowoduje to wyjątek , jeśli numer telefonu nie jest znany WhatsApp, zaoferuje wysłanie zaproszenia przez sms lub prostą wiadomość sms


a co z „przyciskiem wyślij”? Czy możemy to również zrobić programowo ...?
— gumuruh

3

Poniższy kod jest używany przez aplikację Google Now i NIE będzie działał z żadną inną aplikacją.

Piszę ten post, ponieważ denerwuję się, że WhatsApp nie pozwala innym programistom na wysyłanie wiadomości bezpośrednio poza Google.

I chcę, żeby inni niezależni programiści wiedzieli, że tego rodzaju współpraca ma miejsce, podczas gdy Google ciągle mówi o „otwartym dla każdego”, a WhatsApp mówi, że nie chcą zapewniać dostępu do programistów.

Niedawno WhatsApp dodał intencję specjalnie dla Google Now, która powinna wyglądać następująco:

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", ?????);

Mogłem również dowiedzieć się, że „search_action_token” to PendingIntent, który zawiera obiekt IBinder, który jest wysyłany z powrotem do Google App i sprawdzany, czy został utworzony przez Google Now.

W przeciwnym razie WhatsApp nie przyjmie wiadomości.


Ciekawy! ale czy możesz wyjaśnić więcej na temat parametru „search_action_token”, jak możemy go uzyskać i wdrożyć.
— Bilal Mustafa

APK com.google.android.googlequicksearchbox Klasa com.google.android.search.verification.api.SearchActionVerificationService Metoda createGoogleVerificationIntent
— black-hawk

3

Obecnie jedyne oficjalne API, o które możesz GETpoprosić:

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

W każdym razie WhatsApp ma już tajny program API


1
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
— Kumar Saurabh

1
@KumarSaurabh To nie jest link, to żądanie GET
— Zameer

3

użyj tego pojedynczego kodu używanego do wysyłania wiadomości przez 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
     }

2

To działa dla mnie:

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.");
}

2

Oto, co zadziałało dla mnie:

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

2

Użyj bezpośredniego adresu URL WhatsApp

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

1

jest to bardzo długie, ale gburowate działanie. miłego kodu :)

 //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();

}

1

Jestem tu naprawdę spóźniony, ale wierzę, że obecnie mamy krótsze i lepsze rozwiązania do wysyłania wiadomości przez WhatsApp.

Możesz skorzystać z następujących opcji, aby wywołać selektor systemowy, a następnie wybrać aplikację, której będziesz używać do udostępniania, co chcesz.

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);

Jeśli naprawdę potrzebujesz wysłać przez WhatsApp, wszystko, co musisz zrobić, to następujące czynności (pominiesz selektor systemu)

 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);

Jeśli potrzebujesz więcej informacji, możesz je znaleźć tutaj: Często zadawane pytania dotyczące WhatsApp


1

Jak mówi dokumentacja , możesz po prostu użyć adresu URL, takiego jak:

https://wa.me/15551234567

Gdzie ostatni segment to liczba w formacie E164

Uri uri = Uri.parse("https://wa.me/15551234567");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

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)
}

To znacznie łatwiejszy sposób na osiągnięcie tego. Ten kod sprawdza, czy na urządzeniu jest zainstalowana aplikacja WhatsApp. Jeśli jest zainstalowany, omija selektor systemowy i przechodzi do kontaktu w WhatsApp i wstępnie wpisuje tekst na czacie. Jeśli nie jest zainstalowany, otwiera łącze WhatsApp w przeglądarce internetowej.


1

Będziesz chciał użyć adresu URL w następującym formacie ...

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

Następnie możesz poprosić o wysłanie dowolnego tekstu, który chcesz. Masz również możliwość określenia numeru telefonu ...

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

Czego nie można zrobić , to użyć następujących czynności:

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

Dostaniesz...

Nie mogliśmy znaleźć strony, której szukasz

wa.meJednak zadziała, jeśli podasz zarówno numer telefonu, jak i tekst. Ale w większości, jeśli próbujesz utworzyć łącze do udostępniania, naprawdę nie chcesz podawać numeru telefonu, ponieważ chcesz, aby użytkownik kogoś wybrał. W takim przypadku, jeśli nie podasz numeru i nie użyjesz go wa.mejako adresu URL, wszystkie linki do udostępniania zakończą się niepowodzeniem. Proszę użyć app.whatsapp.com.


0

Sprawdź ten kod,

    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)));
}

0

To działa dla mnie:

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();
    }
}

0

zdobądź numer kontaktowy, do którego chcesz wysłać wiadomość i utwórz uri dla WhatsApp, tutaj c to Kursor zwracający wybrany kontakt.

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);

0

Z dokumentacji

Aby utworzyć własny link z wstępnie wypełnioną wiadomością, która automatycznie pojawi się w polu tekstowym czatu, użyj https://wa.me/whatsappphonenumber/?text=urlencodedtext gdzie whatsappphonenumber to pełny numer telefonu w formacie międzynarodowym i adres URL -encodedtext to wstępnie wypełniona wiadomość zakodowana w postaci adresu URL.

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

Przykład kodu

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)

-1

Poniższego interfejsu API można używać w języku c ++, jak pokazano w moim artykule .

Musisz zdefiniować kilka stałych:

//
#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"

//

Następnie łączysz się z punktem końcowym interfejsu 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;
}

Następnie wyślij nagłówek i treść i poczekaj na wynik, który musi być „OK”.

Krok 1 - otwórz żądanie 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;
}

Krok 2 - wyślij nagłówek:

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);

Krok 3 - wyślij wiadomość:

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());

Teraz po prostu sprawdź wynik:

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);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.