WhatsApp을 통해 메시지 보내기


112

whatsapp이 이것을 지원하지 않는다는 오래된 게시물을 발견했기 때문에 무언가가 변경되었는지, 의도를 통해 보내는 번호로 whatsapp '채팅'을 여는 방법이 있는지 궁금합니다.


공유 조치 제공자를 사용해 보셨습니까?
Basim Sherif

흥미롭게 들리지만 어떻게 작동할까요? 문자열 (전화 번호)을 공유 할 수 있으며 whatsapp (또는 선택기)를 열 수 있습니까? 간단한 예를 들어 줄 수 있습니까?
Diego

2
WhatsApp에의 의도 ACTION_SENDTO가 있지만, 그 때문에, 그 특정 전화 번호로 수행하는 것은 불가능하다 (적절하게) 실행되지 않는다 [I 찾았는지 그게]
마난 샤르마


난 여전히 같은 시간에 이미지 및 텍스트를 모두 부착 기대하지만, :( 한숨 운이 발견 해요
gumuruh

답변:


180

업데이트 https://faq.whatsapp.com/en/android/26000030/?category=5245251참조하십시오.

WhatsApp의 Click to Chat 기능을 사용하면 휴대 전화 주소록에 전화 번호를 저장하지 않고도 누군가와 채팅을 시작할 수 있습니다. 이 사람의 전화 번호를 아는 한, 그 사람과 채팅을 시작할 수있는 링크를 만들 수 있습니다.

사용 : https://wa.me/15551234567

사용하지 마십시오 : https://wa.me/+001-(555)1234567

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

원래 답변 여기에 해결책이 있습니다.

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

}

또한 참조 http://www.whatsapp.com/faq/en/android/28000012


메시징과 통합하는 방법은 무엇입니까? 사용자가 whatsapp 또는 메시징을 선택할 수 있도록
Srikanth Pai

33
연락처 정보가 이미 있으면 연락처를 터치하여 선택하고 확인을 클릭하지 않고도 연락처 정보를 추가하고 메시지를 보낼 수 있습니까 ??
user1492955


4
@MananMerevikSharma 소스가 거짓말을하지 않습니다 ( android.googlesource.com/platform/frameworks/base/+/refs/heads/… ). 또한 기본 Java 원칙 : 객체는 더 이상 참조가 없을 때까지 유지됩니다.
JRomero 2014 년

1
@MananMerevikSharma -1. "널 포인터로 전환"되지 않습니다. 다른 부분에는 도달 할 수 없습니다. WhatsApp이 설치되지 않은 경우에도 인 텐트가 전송되지만 일치하는 앱이 없다는 대화 상자가 열립니다. 이는 WhatsApp의 설치 여부를 확인할 수있는 방법을 제공하지 않음을 의미합니다.
0101100101 2014-07-25

64

이 코드를 사용하면 주어진 번호로 whatsapp 채팅을 열 수 있습니다.

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 나는이 선생님을 따라,하지만 난 그것을 "어떤 앱이 작업을 수행 할 수 없다"라고 내 또는 WhatsApp를 시작하는 내 버튼을 클릭 할 때
아르 준 narahari

@VihaanVerma이 작업을 어떻게 수행했는지 공유 할 수 있습니까? 나는 WhatsApp에 버전 2.11.56021에 대한 동일한 코드를 구현 나는 ... 아무것도 점점없는거야
알람 거 MAND

1
체크하면 특정 번호의 채팅 창이 아닌 모든 채팅 목록으로 이동합니다.
Darpan 2015

8
채팅 목록 또는 연락처 목록에 해당 번호가있는 경우에만 작동합니다.
Anshul Tyagi 2016 년

1
직접 공개 된 번호 채팅 에 startActivity(Intent.createChooser(i, ""));사용 startActivity(i);하는 대신 . 1. 삼성 J7 프라임에서 테스트가 작동하고 있습니다. 2. 내 연락처 목록에도 번호가 내 채팅 목록에도 없습니다. 3. 번호가 whatsapp을 사용하지 않는 경우 whatsapp에서 해당 연락처를 초대 할 것인지 묻는 대화 상자가 나타납니다. 앱 사용자에게 whatsapp 문의 지원을 제공하려는 경우 최상의 솔루션이라고 생각합니다.
Muhammad Saqib

25

다음 해결책을 찾았습니다. 먼저 whatsapp ID가 필요합니다.

여기에있는 다른 스레드와 다른 포럼의 보고서와 일치하는 로그인 이름은 일종의 일종의 것입니다. 0이없는 국제 지역 번호 또는 처음에 +가없는 국제 지역 코드 + 첫 번째가없는 전화 번호 + @ s.whatsapp.net

예를 들어 네덜란드에 거주하고 전화 번호가 0612325032 인 경우 0 또는 +가없는 네덜란드의 경우 31612325023@s.whatsapp.net-> +31이되고 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);
    }

}

이 코드를 시도하고 있지만 getSherlockActivity ()가 정의되지 않았다고 알려줍니다. 이 문제를 해결하는 방법?
Eman87 2013-12-05

2
@ Eman87 Diego는 Action Bar Sherlock을 사용하므로 방법이 있습니다. getSherlockActivity () 대신 활동 범위를 가져옵니다.
Manan Sharma

4
if (whatsapp != null)당신이했던 두 줄 위에 아무 의미가 없습니다 Intent whatsapp = new Intent(...).
Carcamano 2014

2
그 사람이 연락처에있는 경우 채팅 창을 직접 열 수있는 좋은 옵션입니다. 연락처에없는 새 번호에 대해 동일한 방법이 있습니까?
MohammedYakub Moriswala 2014

1
당신은 추가 할 필요 <uses-permission android:name="android.permission.READ_CONTACTS" />에 권한을AndroidManifest.xml
Pratik Butani

16

Whatsapp 설치 여부에 관계없이 작동합니다.

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


2
어떤 활동 텐트를 처리하기 위해 발견 {= android.intent.action.SENDTO 일반 = 텍스트 / 일반 PKG = com.whatsapp (엑스트라가) 행동}
인 Rajesh

2
작업하려면이 줄을 제거해야합니다. sendIntent.setType ( "text / plain");
MSaudi

2
sendIntent.setType ( "text / plain")을 제거하면 Activity Not Found 예외가 처리되지 않지만 이제 텍스트가 메시지로 추가되지 않습니다
Rik van Velzen

이 같은 모습은 의도를받는 활동은 "sms_body"일부 참조가하지만 난 할 수 없어요 더 이상 불가능 그것은 작동
sherpya

15

간단한 해결책, 이것을 시도하십시오.

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 에서 테스트되었으며 작동합니다!

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

이것은 사람과 직접 채팅을 할 것입니다. whatsapp이 설치되지 않은 경우 예외가 발생 합니다. whatsapp에 전화 번호가 알려지지 않은 경우 SMS 또는 간단한 SMS 메시지를 통해 초대를 보내도록 제안합니다.


'보내기 버튼'은 어떻습니까? 프로그래밍 방식으로도 할 수 있습니까 ...?
gumuruh

3

다음 코드는 Google Now 앱에서 사용되며 다른 애플리케이션에서는 작동하지 않습니다.

WhatsApp이 Google을 제외한 다른 개발자가 직접 메시지를 보내는 것을 허용하지 않기 때문에이 게시물을 작성하고 있습니다.

그리고 저는 다른 프리랜서 개발자들에게 이런 종류의 협력이 진행되고 있다는 사실을 알고 싶습니다. 구글은 "누구에게나 개방적"이라고 계속 이야기하고 있으며 WhatsApp은 개발자에게 어떠한 액세스도 제공하고 싶지 않다고 말합니다.

최근 WhatsApp은 다음과 같은 Google Now 전용 인 텐트를 추가했습니다.

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

또한 "search_action_token"이 IBinder-Object를 포함하는 PendingIntent라는 것을 알 수 있습니다. IBinder-Object는 Google 앱으로 다시 전송되고 Google Now에서 생성되었는지 확인합니다.

그렇지 않으면 WhatsApp이 메시지를 수락하지 않습니다.


흥미 롭군요! 하지만 "search_action_token"에 대해 자세히 설명해 주실 수 있나요?
Bilal Mustafa

APK com.google.android.googlequicksearchbox 클래스 com.google.android.search.verification.api.SearchActionVerificationService 메서드 createGoogleVerificationIntent
black-hawk

3

현재 귀하가 요청할 수 있는 유일한 공식 APIGET :

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

어쨌든 WhatsApp에서 이미 실행중인 비밀 API 프로그램이 있습니다.


1
이 링크가 질문에 답할 수 있지만 여기에 답변의 필수 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 무효화 될 수 있습니다. - 리뷰에서
Kumar Saurabh

1
@KumarSaurabh 이것은 링크가 아니라 GET 요청입니다
Zameer

3

이 단일 코드 사용을 사용하여 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

이것은 나에게 효과적입니다.

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

이것은 나를 위해 일한 것입니다.

        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의 직접 URL 사용

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

1

이것은 매우 길지만 확실히 작동합니다. 코드 즐기기 :)

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

나는 여기에 정말 늦었지만 요즘 WhatsApp을 통해 메시지를 보내는 더 짧고 더 나은 솔루션이 있다고 믿습니다.

다음을 사용하여 시스템 선택기를 호출 한 다음 원하는 것을 공유하는 데 사용할 앱을 선택할 수 있습니다.

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

WhatsApp을 통해 전송해야하는 경우 다음 만 수행하면됩니다 (시스템 선택기를 건너 뜁니다).

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

더 많은 정보가 필요한 경우 여기에서 찾을 수 있습니다 : WhatsApp FAQ


1

문서에 나와 있듯이 다음 과 같은 URL을 사용할 수 있습니다.

https://wa.me/15551234567

마지막 세그먼트는 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)
}

이것은 이것을 달성하는 훨씬 쉬운 방법입니다. 이 코드는 whatsapp이 장치에 설치되어 있는지 확인합니다. 설치되어있는 경우 시스템 선택기를 우회하고 whatsapp의 연락처로 이동하여 채팅 텍스트를 미리 입력합니다. 설치되지 않은 경우 웹 브라우저에서 whatsapp 링크가 열립니다.


1

다음 형식의 URL을 사용하는 것이 좋습니다.

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

그런 다음 원하는 텍스트를 보내도록 할 수 있습니다. 전화 번호를 지정할 수도 있습니다.

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

수없는 것은 다음을 사용하는 것입니다.

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

당신은 얻을 것입니다 ...

찾고있는 페이지를 찾을 수 없습니다.

wa.me하지만 전화 번호와 문자를 모두 제공하면 작동합니다. 그러나 대부분의 경우 공유 링크를 만들려는 경우 사용자가 누군가를 선택하기를 원하기 때문에 전화 번호를 표시하고 싶지 않습니다. 이 경우 번호를 제공하지 않고 wa.meURL로 사용 하면 모든 공유 링크가 실패합니다. 을 사용하십시오 app.whatsapp.com.


0

이 코드를 확인하십시오.

    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

이것은 나에게 효과적입니다.

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

메시지를 보낼 연락처 번호를 얻고 whatsapp에 대한 uri를 만듭니다. 여기서 c는 선택한 연락처를 반환하는 커서입니다.

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

로부터 문서

채팅 텍스트 필드에 자동으로 표시되는 미리 채워진 메시지로 자신 만의 링크를 만들려면 https://wa.me/whatsappphonenumber/?text=urlencodedtext를 사용 하세요. 여기서 whatsappphonenumber는 국제 형식 및 URL의 전체 전화 번호입니다. -encodedtext는 URL로 인코딩 된 미리 채워진 메시지입니다.

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

코드 예

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

내 기사 에서 볼 수 있듯이 다음 API는 C ++에서 사용할 수 있습니다. .

몇 가지 상수를 정의해야합니다.

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

//

그런 다음 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;
}

그런 다음 헤더와 본문을 모두 보내고 "OK"가 필요한 결과를 기다립니다.

1 단계-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;
}

2 단계-헤더 보내기 :

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

3 단계-메시지 보내기 :

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

이제 결과를 확인하십시오.

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);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.