WhatsApp üzerinden mesaj gönderme


112

Whatsapp'ın bunu desteklemediğini söyleyen bazı eski gönderiler bulduğum için, bir şeyin değişip değişmediğini ve bir niyetle gönderdiğim bir numara ile bir whatsapp 'sohbeti' açmanın bir yolu olup olmadığını merak ediyordum.


paylaşım sağlayıcıyı denedin mi?
Basim Şerif

Kulağa ilginç geliyor ama bu nasıl çalışır? Bir dizeyi (telefon numarası) paylaşabilir miyim ve whatsapp'ı (veya seçiciyi) açacak mıyım? Küçük bir örnek verebilir misiniz?
Diego

2
whatsapp'ta ACTION_SENDTO niyeti olmasına rağmen, (doğru şekilde) çalıştırılmadığından, belirli bir telefon numarasına [bulduğum şey bu] yapmak mümkün değildir
Manan Sharma


Hâlâ hem resmi hem de metni aynı anda
eklemeyi

Yanıtlar:


180

GÜNCELLEME Lütfen https://faq.whatsapp.com/en/android/26000030/?category=5245251 adresine bakın

WhatsApp'ın Tıkla Sohbet özelliği, telefon numarası telefonunuzun adres defterine kaydedilmeden biriyle sohbet etmeye başlamanıza olanak tanır. Bu kişinin telefon numarasını bildiğiniz sürece, onunla sohbet başlatmanıza izin verecek bir bağlantı oluşturabilirsiniz.

Kullanın: https://wa.me/15551234567

Kullanmayın: https://wa.me/+001-(555)1234567

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

Orijinal cevap İşte çözüm

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

}

Ayrıca http://www.whatsapp.com/faq/en/android/28000012 adresine de bakın


Mesajlaşma ile nasıl entegre edilir? böylece kullanıcı whatsapp veya mesajlaşmayı seçebilir
Srikanth Pai

33
iletişim bilgilerine zaten sahipsek, kişi bilgilerini seçmek ve göndermek için ok'a dokunmak zorunda kalmadan iletişim bilgilerini eklemek ve mesaj göndermek mümkün müdür?
user1492955


4
@MananMerevikSharma kaynağı yalan söylemez ( android.googlesource.com/platform/frameworks/base/+/refs/heads/… ). Ek olarak, temel Java prensibi: Bir nesne, artık kendisine referans kalmayana kadar yaşar.
JRomero

1
@MananMerevikSharma -1. "Boş göstericiye dönüşmez". Diğer kısma asla ulaşılamaz. WhatsApp kurulmadığında, Amaç hala gönderilir, ancak eşleşen bir uygulama olmadığını söyleyen bir İletişim Kutusu açılır. Bu, WhatsApp'ın kurulu olup olmadığını kontrol etmek için herhangi bir yol sağlamadığınız anlamına gelir.
0101100101

64

Bu kod ile verilen numara ile whatsapp sohbetini açabilirsiniz.

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 Bunu takip ettim efendim, ancak whatsapp'ımı başlatmak için düğmeme tıkladığımda "Hiçbir uygulama bu eylemi gerçekleştiremez" diyor
arjun narahari

@VihaanVerma bunu nasıl çalıştırdığınızı paylaşır mısınız? Aynı kodu whatsapp sürüm 2.11.56021'e uyguladım ve hiçbir şey alamıyorum ...
Alamgir Mand

1
İşaretlendiğinde, beni belirli bir numaranın sohbet penceresine değil tüm sohbet listesine gönderir.
Darpan

8
Yalnızca sohbet listenizde veya kişi listenizde bu numara olduğunda çalışır.
Anshul Tyagi

1
doğrudan açık sağlanan numara sohbeti için startActivity(Intent.createChooser(i, ""));kullanmak yerine startActivity(i);. 1. Çalışıyor Samsung J7 prime üzerinde test edilmiştir. 2. numara sohbet listemde de yoktu. 3. numara whatsapp kullanmıyorsa, o kişiyi whatsapp'a davet etmek istediğimi soran bir iletişim kutusu belirir. Uygulama kullanıcılarınız için whatsapp iletişim desteği sağlamak istiyorsanız, bunun en iyi çözüm olduğunu düşünüyorum.
Muhammad Saqib

25

Aşağıdaki çözümü buldum, önce whatsapp kimliğine ihtiyacınız olacak:

Buradaki ve diğer forumlardaki diğer başlıklardan gelen raporlarla eşleştiğimde, bulduğum giriş adı bir çeşitti: 0'lar olmadan uluslararası alan kodu veya başlangıçta + + ilk 0 + @ s.whatsapp.net olmadan telefon numarası

Örneğin, Hollanda'da yaşıyorsanız ve 0612325032 telefon numarasına sahipseniz, 0'lar veya + olmadan Hollanda için 31612325023@s.whatsapp.net -> +31 ve 0 olmadan telefon numarası olacaktır.

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

}

Bu kodu deniyorum ama bana getSherlockActivity () 'nin tanımsız olduğunu söylüyor. bu nasıl düzeltilir?
Eman87

2
@ Eman87 Diego, Action Bar Sherlock kullanıyor, bu yüzden yöntem. GetSherlockActivity () yerine etkinliğinizin kapsamını alın.
Manan Sharma

4
if (whatsapp != null)Sizin yaptığınız 2 satırın hiçbir anlamı yok Intent whatsapp = new Intent(...).
Carcamano

2
Kişi Kişiler'de mevcutsa sohbet penceresini doğrudan açmak için bu iyi bir seçenektir. Kontaklarımızda olmayan yeni numara için aynısını yapmanın bir yolu var mı?
MohammedYakub Moriswala

1
<uses-permission android:name="android.permission.READ_CONTACTS" />İzin eklemeniz gerekiyor AndroidManifest.xml
Pratik Butani

16

Bu, Whatsapp kurulu olsa da olmasa da çalışmalıdır.

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
Aktivite
Whatsapp

2
Amacı işleyecek Etkinlik bulunamadı {act = android.intent.action.SENDTO typ = text / plain pkg = com.whatsapp (ekstralar var)}
Rajesh

2
SendIntent.setType ("metin / düz") ile çalışmak için bu satırı kaldırmanız gerekir;
MSaudi

2
sendIntent.setType'ın kaldırılması ("metin / düz"), Etkinlik Bulunamadı istisnasının atılmamasını sağlar, ancak artık metin mesaj olarak eklenmez
Rik van Velzen

Görünüşe göre artık mümkün değil, amacı alan etkinlik "sms_body" ile ilgili bazı referanslara sahip ancak işe
yarayamıyorum

15

Basit çözüm, bunu deneyin.

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

Marshmallow S5 üzerinde test edildi ve çalışıyor!

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

Bu, bir kişiyle doğrudan bir sohbet açacak , whatsapp yüklenmemişse bu istisna atacak , telefon numarası whatsapp tarafından bilinmiyorsa sms veya basit sms mesajı yoluyla davetiye göndermeyi teklif edecekler


peki ya 'gönder düğmesi'? Bunu programlı olarak da yapabilir miyiz ...?
gumuruh

3

Aşağıdaki kod Google Now Uygulaması tarafından kullanılır ve başka hiçbir uygulama için ÇALIŞMAZ.

Bu yazıyı, WhatsApp'ın Google haricinde başka hiçbir geliştiricinin doğrudan mesaj göndermesine izin vermemesi beni kızdırdığı için yazıyorum.

Ve diğer serbest çalışan geliştiricilerin, bu tür bir işbirliğinin sürdüğünü bilmesini istiyorum, bu arada Google "herkese açık" hakkında konuşmaya devam ediyor ve WhatsApp geliştiricilere erişim sağlamak istemediklerini söylüyor.

Son zamanlarda WhatsApp, Google Asistan için özel olarak aşağıdaki gibi görünmesi gereken bir Amaç ekledi:

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

Ayrıca "search_action_token" ifadesinin, Google Uygulamasına geri gönderilen ve Google Asistan tarafından oluşturulmuşsa kontrol edilen bir IBinder-Nesnesi içeren bir PendingIntent olduğunu da bulabildim.

Aksi takdirde WhatsApp mesajı kabul etmeyecektir.


İlginç! ancak "search_action_token" hakkında daha fazla açıklama yapabilir misiniz, bunu nasıl elde edip uygulayabiliriz.
Bilal Mustafa

APK com.google.android.googlequicksearchbox Class com.google.android.search.verification.api.SearchActionVerificationService Method createGoogleVerificationIntent
black-hawk

3

Şu anda, istekte bulunabileceğiniz tek resmi APIGET :

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

Her neyse, zaten WhatsApp tarafından çalıştırılan gizli bir API programı var


1
Bu bağlantı soruyu cevaplayabilirken, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse, yalnızca bağlantı yanıtları geçersiz hale gelebilir. - Yorumdan
Kumar Saurabh

1
@KumarSaurabh Bu bir bağlantı değil, bir GET isteği
Zameer

3

WhatsApp üzerinden mesaj göndermek için bu tek satır kodunu kullanın

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

Bu benim için çalışıyor:

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

Bu benim için çalıştı:

        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

Whatsapp'ın doğrudan URL'sini kullanın

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

1

Bu çok uzun ama huysuz çalışıyor. kodunuzun keyfini çıkarın :)

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

Burada gerçekten geç kaldım ama bugünlerde WhatsApp üzerinden mesaj göndermek için daha kısa ve daha iyi çözümlerimiz olduğuna inanıyorum.

Sistem seçiciyi çağırmak için aşağıdakileri kullanabilir, ardından istediğinizi paylaşmak için hangi uygulamayı kullanacağınızı seçebilirsiniz.

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

Gerçekten WhatsApp üzerinden göndermeniz gerekiyorsa, yapmanız gereken tek şey şudur (Sistem seçiciyi atlayacaksınız)

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

Daha fazla bilgiye ihtiyacınız varsa burada bulabilirsiniz: WhatsApp SSS


1

Belgelerin dediği gibi, aşağıdaki gibi bir URL kullanabilirsiniz:

https://wa.me/15551234567

Son segmentin E164 Biçimindeki sayı olduğu yer

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

Bu, bunu başarmanın çok daha kolay bir yoludur. Bu kod, cihazda whatsapp'ın kurulu olup olmadığını kontrol eder. Yüklenmişse, sistem seçiciyi atlar ve whatsapp'daki kişiye gider ve sohbetteki metni önceden alır. Yüklenmemişse, web tarayıcınızda whatsapp bağlantısını açar.


1

Aşağıdaki biçimde bir URL kullanmak isteyeceksiniz ...

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

Daha sonra istediğiniz metni göndermesini sağlayabilirsiniz. Ayrıca bir telefon numarası belirtme seçeneğiniz de var ...

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

Ne DO CAN NOT aşağıdaki kullanmaktır:

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

Alacaksın...

Aradığınız sayfayı bulamadık

wa.meAncak hem bir telefon numarası hem de metin sağlarsanız işe yarayacaktır. Ancak, çoğunlukla, bir paylaşım bağlantısı oluşturmaya çalışıyorsanız, telefon numarasını belirtmek istemezsiniz çünkü kullanıcının birini seçmesini istersiniz. Bu durumda, numarayı vermezseniz ve wa.meURL olarak kullanırsanız , tüm paylaşım bağlantılarınız başarısız olur. Lütfen kullanın app.whatsapp.com.


0

Bu kodu kontrol edin,

    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

Bu benim için çalışıyor:

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

Mesajı göndermek istediğiniz kişi numarasını alın ve whatsapp için uri oluşturun, burada c seçilen kişiyi döndüren bir İmleçtir.

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

Gönderen dokümantasyon

Bir sohbetin metin alanında otomatik olarak görünecek önceden doldurulmuş bir mesajla kendi bağlantınızı oluşturmak için, https://wa.me/whatsappphonenumber/?text=urlencodedtext'i kullanın ; burada whatsappphonenumber, uluslararası formatta ve URL'de tam bir telefon numarasıdır -encodedtext, URL kodlu önceden doldurulmuş mesajdır.

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

Kod örneği

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

Aşağıdaki API, makalemde gösterildiği gibi c ++ 'da kullanılabilir .

Birkaç sabit tanımlamanız gerekir:

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

//

Ardından API'nin uç noktasına bağlanırsınız.

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

Ardından hem başlığı hem de gövdeyi gönderin ve "Tamam" olması gereken sonucu bekleyin.

Adım 1 - Bir HTTP isteği açın:

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

Adım 2 - başlığı gönderin:

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

Adım 3 - Mesajı Gönderin:

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

Şimdi sadece sonucu kontrol edin:

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);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.