GetChatHistory#
השיטה מחזירה את היסטוריית הודעות הצ'אט
כדי לקבל הודעות נכנסות, עליך להפעיל את ההגדרה 'קבל חיבורים באינטרנט על הודעות וקבצים נכנסים' באמצעות SetSettings שיטה או דרך console.
כדי לקבל את סטטוסים של הודעות שנשלחו, עליך להפעיל את ההגדרה 'קבל הודעות על סטטוסים של הודעות שנשלחו' באמצעות SetSettings שיטה או דרך console
ייתכן שיחלפו עד 5 דקות עד שההגדרות ייכנסו לתוקף.
כדי לקבל הודעות שנשלחו והתקבלו בטלפון שלך לפני חיבור המופע, לאחר שמירת ההגדרות במופע, עליך לבצע התנתק ו לְאַשֵׁר again.
שיטת GetChatHistory מחזירה רק את ההיסטוריה ש-WhatsApp מספקת למערכת.
הופעת ההודעות ביומן עשויה להימשך עד 2 דקות. יש להשתמש בשיטות יומן רק לאחזור היסטוריית הצ'אט. לאחזור מהיר יותר של הודעות, השתמש ב-מערכת הודעות.
בקשה#
כדי לקבל היסטוריית צ'אטים, עליך לבצע בקשה בכתובת
לקבלת פרמטרים של בקשת 'apiUrl', 'idInstance' ו- 'apiTokenInstance', עיין ב לפני שתתחיל במקטע.
פרמטרים של בקשה#
פָּרָמֶטֶר | סוּג | הֶכְרֵחִי | תֵאוּר |
---|---|---|---|
chatId | string | כן | מזהה אישי או מזהה צ'אט היסטוריית ההודעות שאתה צריך לקבל |
count | integer | לא | מספר ההודעות שיש לקבל. ברירת המחדל היא '100' |
דוגמה לגוף תגובה#
בקשה ל-10 הודעות אחרונות::
{
"chatId": "11001234567@c.us",
"count": 10
}
תגובה#
התגובה מכילה רשימה של כל ההודעות שהתקבלו ונשלחו בצ'אט. חותמת זמן הודעה מיון בסדר יורד..
פרמטרים של תגובה#
מערך אובייקטים עם פרמטרים::
פרמטר | סוג | תיאור |
---|---|---|
type | string | סוג הודעה: 'יוצא' - הודעה יוצאת; 'נכנס' - הודעה נכנסת |
idMessage | string | מזהה הודעה נכנסת |
timestamp | integer | זמן קבלת הודעות בתבנית UNIX |
statusMessage | string | מצב הודעה יוצאת. נוכח רק עבור 'סוג' = 'יוצא'. גרסאות אפשריות: |
'noAccount' - אין חשבון WhatsApp במספר הטלפון | ||
'notInGroup' - לא בקבוצה זו | ||
pending - נשלח | ||
sent - שלח | ||
delivered - נמסר | ||
read - לקרוא/לראות/לשמוע | ||
yellowCard - השעיית שליחת הודעות עקב פעילות ספאם. הודעות הנשלחות לאחר קבלת המצב מאוחסנות בתור לשליחה למשך 24 שעות. כדי להמשיך להפעיל את המופע, עליך לבצע אתחול מחדש של המופע | ||
sendByApi | boolean | האם ההודעה נשלחת באמצעות API. נוכח רק עבור type = outgoing |
typeMessage | string | סוג הודעה, וריאנטים אפשריים: |
textMessage - הודעת טקסט | ||
imageMessage - הודעת תמונה | ||
videoMessage - הודעת וידאו | ||
documentMessage - הודעת קובץ מסמך | ||
audioMessage - הודעה קולית | ||
stickerMessage - הודעת מדבקה | ||
reactionMessage - הודעת תגובה | ||
locationMessage - הודעת מיקום | ||
contactMessage - הודעה ליצירת קשר | ||
extendedTextMessage - קישור ותצוגה מקדימה של הודעה | ||
pollMessage - הודעת סקר | ||
pollUpdateMessage - עדכון הודעת סקר. נוכח רק עבור type = incoming | ||
quotedMessage - הודעה מצוטטת | ||
chatId | string | מזהה צ'אט, היכן התקבלה ההודעה |
senderId | string | שולח הודעות Id. נוכח רק עבור type = incoming |
senderName | string | שם שולח ההודעה. נוכח רק עבור type = incoming |
senderContactName | string | שם שולח ההודעה בהתאם לרשימת אנשי הקשר של החשבון השוטף. נוכח רק עבור type = incoming |
isForwarded | boolean | הדגל מציין אם ההודעה מועברת |
forwardingScore | integer | מספר העברות ההודעות |
textMessage | string | הודעת טקסט, אם typeMessage =textMessage /extendedTextMessage |
downloadUrl | string | קישור להורדת קובץ, אם typeMessage = imageMessage /videoMessage /documentMessage /audioMessage /stickerMessage |
caption | string | כיתוב קובץ, אם typeMessage = imageMessage /videoMessage /documentMessage /audioMessage /stickerMessage |
fileName | string | שם קובץ, אם 'typeMessage' = 'imageMessage'/'videoMessage' /'documentMessage'/'audioMessage'/'stickerMessage'. השדה מלא כראוי רק עבור 'typeMessage' = 'documentMessage', במקרים אחרים שם הקובץ נוצר באופן אוטומטי |
jpegThumbnail | string | תצוגה מקדימה של תמונה בקידוד 'base64', אם 'typeMessage' = 'imageMessage' /'videoMessage'/'documentMessage'/'audioMessage'/'stickerMessage' |
mimeType | string | סוג הקובץ בהתאם ל סוגי מדיה, אם typeMessage = imageMessage /videoMessage /documentMessage /audioMessage /stickerMessage |
isAnimated | boolean | הדגל מציין אם הקובץ מונפש, אם 'typeMessage' = 'imageMessage'/'videoMessage'/'documentMessage'/'audioMessage'/'stickerMessage' |
location | object | אובייקט מבנה מיקום, אם 'typeMessage' = 'locationMessage' |
contact | object | אובייקט מבנה איש קשר, אם 'typeMessage' = 'contactMessage' |
extendedTextMessage | object | אובייקט הודעת טקסט (מתקדם), אם 'typeMessage' = 'extendedTextMessage'/'quotedMessage' |
extendedTextMessageData | object | אובייקט נתוני הודעת תגובה, אם 'typeMessage' = 'reactionMessage' ` |
pollMessageData | object | אובייקט מבנה נתוני סקר, אם 'typeMessage' = 'pollMessage'/'pollUpdateMessage'` |
quotedMessage | object | אובייקט נתוני הודעה מצוטטת, אם 'typeMessage' = 'quotedMessage'/'reactionMessage |
פרמטרים של אובייקט 'מיקום'
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
nameLocation | string | שם המיקום |
address | string | כתובת מיקום |
latitude | double | קו רוחב מיקום |
longitude | double | קו אורך מיקום |
jpegThumbnail | string | תצוגה מקדימה של תמונה מקודדת base64 |
isForwarded | boolean | הדגל מציין אם ההודעה מועברת |
forwardingScore | integer | מספר העברות ההודעות |
פרמטרים של אובייקט 'צור קשר'
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
displayName | string | שם תצוגה של איש קשר |
vcard | string | מבנה VCard (כרטיס ביקור ליצירת קשר) |
isForwarded | boolean | הדגל מציין אם ההודעה מועברת |
forwardingScore | integer | מספר העברות ההודעות |
פרמטרים של אובייקט extendedTextMessage
:
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
text | string | טקסט קישור |
description | string | תיאור קישור |
title | string | כותרת הקישור |
previewType | string | סוג תצוגה מקדימה של קישור. previewType : הערך None הוצא משימוש |
jpegThumbnail | string | תצוגה מקדימה של תמונה מקודדת base64 |
stanzaId | string | מזהה הודעה מצוטט. הצג רק עבור typeMessage = `quotedMessage |
participant | string | נתח צ'אט של נמען/שולח. הצג רק עבור type Message = `quote Message |
isForwarded | boolean | הדגל מציין אם ההודעה מועברת |
forwardingScore | integer | מספר העברות ההודעות |
פרמטרים של אובייקט extendedTextMessageData
:
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
text | string | תגובה (אימוג'י) להודעה |
פרמטרים של אובייקט pollMessageData
:
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
stanzaId | string | מזהה הודעת סקר יוצא. קיים רק עבור typeMessage =pollUpdateMessage |
name | string | טקסט הסקר |
options | array | מערך אפשרויות סקר. קיים רק עבור typeMessage = pollMessage |
votes | array | מערך ההצבעות בסקר. קיים רק עבור typeMessage =pollUpdateMessage |
multipleAnswers | boolean | סמן כדי לאפשר מספר תשובות |
פרמטרים של אובייקט pollMessageData
:
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
optionName | string | טקסט אפשרות בחירת סקר |
פרמטרים של מערך 'קולות':
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
optionName | string | טקסט אפשרות בחירת סקר |
optionVoters | array | מזהה חשבון הצבעה של מערך סקר |
פרמטרים של אובייקט quotedMessage
:
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
stanzaId | string | מזהה הודעה מצוטט |
participant | string | מזהה צ'אט של הנמען |
typeMessage | string | סוג הודעה מצוטט |
The remaining fields of the
quotedMessage
object are filled in depending on the type of the quoted message and are identical to the fields described above
דוגמה לגוף תגובה#
[
{
"type": "incoming",
"idMessage": "9DB14F14A253D33F4A9CD84123456789",
"timestamp": 1706522263,
"typeMessage": "textMessage",
"chatId": "120363153000000000@g.us",
"textMessage": "Hi",
"senderId": "70000000012@c.us",
"senderName": "Rachel",
"senderContactName": "Rachel 2"
},
{
"type": "outgoing",
"idMessage": "BAE5143000000000",
"timestamp": 1706761225,
"typeMessage": "textMessage",
"chatId": "70000000012@c.us",
"textMessage": "Hi",
"statusMessage": "read",
"sendByApi": true
},
{
"type": "incoming",
"idMessage": "EAAE5A5CD000000000",
"timestamp": 1706601620,
"typeMessage": "imageMessage", //"videoMessage"/`documentMessage`/`audioMessage`/`stickerMessage`
"chatId": "120363153000000000@g.us",
"downloadUrl": "https://api.green-api.com/waInstance1234/downloadFile/EA1BD1AE042DC4F3609867126309D67C.jpg",
"caption": "What do you think?",
"fileName": "03963bac-6020-423c-80df-1aa123456789.jpg",
"jpegThumbnail": "/9j/4AAQSkZJ/aAAgBAwEBPwCVYw//xAApEAACAx/2kOVh/VKAoAH/leFhX//+AAMA/9k=",
"mimeType": "image/jpeg",
"isAnimated": false,
"isForwarded": true,
"forwardingScore": 1,
"senderId": "70000000012@c.us",
"senderName": "Rachel",
"senderContactName": "Rachel 2"
},
{
"type": "outgoing",
"idMessage": "3A1EBA0F23004BD415BB",
"timestamp": 1706601621,
"typeMessage": "reactionMessage",
"chatId": "70000000012@c.us",
"extendedTextMessageData": {
"text": "😄"
},
"quotedMessage": {
"stanzaId": "B4D7D8A1A7D887D5580F000000000000",
"participant": "70000000012@c.us",
},
"statusMessage": "read",
"sendByApi": false
},
{
"type": "outgoing",
"idMessage": "BAE5870000000000",
"timestamp": 1706761414,
"typeMessage": "locationMessage",
"chatId": "70000000012@c.us",
"location": {
"nameLocation": "Cafe",
"address": "Astana",
"jpegThumbnail": "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRX",
"latitude": 51.1280000000000,
"longitude": 71.4307620000000,
"forwardingScore": 0,
"isForwarded": false
},
"statusMessage": "read",
"sendByApi": true
},
{
"type": "incoming",
"idMessage": "3AA2C1D83560000000000",
"timestamp": 1706675513,
"typeMessage": "contactMessage",
"chatId": "70000000012@c.us",
"contact": {
"displayName": "Anastasia",
"vcard": "BEGIN:VCARD\nVERSION:3.0\nN:;Anastasia;;;\nFN:Anastasia\nTEL;type=CELL;type=VOICE;waid=70000000013:+7 000 000-00-13\nEND:VCARD",
"forwardingScore": 0,
"isForwarded": false
},
"senderId": "70000000012@c.us",
"senderName": "Rachel",
"senderContactName": "Rachel 2"
},
{
"type": "incoming",
"idMessage": "3A66D7F0B50000000000",
"timestamp": 1706675928,
"typeMessage": "extendedTextMessage",
"chatId": "70000000012@c.us",
"textMessage": "Hqhqhhqh\nhttps://greenapi.com",
"extendedTextMessage": {
"text": "Hqhqhhqh\nhttps://greenapi.com",
"description": "GREEN API: WhatsApp API on any language PHP, JavaScript, 1C, Python, Java, C#, VBA etc.",
"title": "GREEN API: send and receive WhatsApp messages",
"previewType": "None",
"jpegThumbnail": "/9j/4AAQSkZJRgABAQAAAQABZ",
"forwardingScore": 0,
"isForwarded": false
},
"senderId": "70000000012@c.us",
"senderName": "Rachel",
"senderContactName": "Rachel 2"
},
{
"type": "outgoing",
"idMessage": "460D84E00000000000",
"timestamp": 1706762412,
"typeMessage": "pollMessage",
"chatId": "70000000012@c.us",
"pollMessageData": {
"name": "Choose your favorite color",
"options": [
{
"optionName": "Red"
},
{
"optionName": "Green"
}
],
"multipleAnswers": true
},
"statusMessage": "delivered",
"sendByApi": true
},
{
"type": "incoming",
"idMessage": "3A0493ED90000000000000",
"timestamp": 1706676447,
"typeMessage": "pollUpdateMessage",
"chatId": "70000000012@c.us",
"pollMessageData": {
"name": "Choose your favorite color",
"stanzaId": "460D84E00000000000",
"votes": [
{
"optionName": "Red",
"optionVoters": [
"70000000012@c.us"
]
},
{
"optionName": "Green",
"optionVoters": []
}
],
"multipleAnswers": true
},
"senderId": "70000000012@c.us",
"senderName": "Rachel",
"senderContactName": "Rachel 2"
},
{
"type": "outgoing",
"idMessage": "B1494991277FD000000000000000000000",
"timestamp": 1706849516,
"typeMessage": "quotedMessage",
"chatId": "70000000012@c.us",
"extendedTextMessage": {
"text": "Black",
"stanzaId": "460D84E00000000000",
"participant": "70000000012@c.us"
},
"quotedMessage": {
"stanzaId": "460D84E00000000000",
"participant": "70000000012@c.us",
"typeMessage": "pollMessage",
"pollMessageData": {
"name": "Choose your favorite color",
"options": [],
"multipleAnswers": true
}
},
"statusMessage": "delivered",
"sendByApi": false
},
{
"type": "outgoing",
"idMessage": "21D6C50B400DBCEC30000000000000",
"timestamp": 1706852882,
"typeMessage": "quotedMessage",
"chatId": "70000000012@c.us",
"extendedTextMessage": {
"text": "Cool",
"stanzaId": "79DC2458992097F00000000000000000",
"participant": "70000000012@c.us"
},
"quotedMessage": {
"stanzaId": "79DC2458992097F00000000000000000",
"participant": "70000000012@c.us",
"typeMessage": "imageMessage", //"videoMessage"/`documentMessage`/`audioMessage`/`stickerMessage`
"downloadUrl": "",
"caption": "",
"fileName": "",
"jpegThumbnail": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAgq7O/wD/2Q==",
"mimeType": "image/jpeg",
"isAnimated": false,
"isForwarded": false,
"forwardingScore": 0
},
"statusMessage": "read",
"sendByApi": true
}
]
GetChatHistory errors#
For a list of errors common to all methods, refer to Common errors section
Request examples#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}"
payload = "{\r\n\t\"chatId\": \"11001234567@c.us\",\r\n\t\"count\": 100\r\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, json=payload)
print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"chatId": "11001234567@c.us",
"count": 10
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/getChatHistory/")
.append({{apiTokenInstance}});
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
var jsonBody = "{\"chatId\": \"11001234567@c.us\",\"count\": 10}";
var requestEntity = new HttpEntity<>(jsonBody, headers);
var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/getChatHistory/")
.append({{apiTokenInstance}});
var response = Unirest.post(requestUrl.toString())
.header("Content-Type", "application/json")
.body("{\"chatId\": \"11001234567@c.us\",\"count\": 10}")
.asString();
System.out.println(response);
Sub GetChatHistory()
Dim url As String
Dim RequestBody As String
Dim http As Object
Dim response As String
' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
url = "{{apiUrl}}/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}"
' chatId - personal or group chat identifier whose message history you want to receive, count - number of messages to receive, default value 100
RequestBody = "{""chatId"":""71234567890@c.us"",""count"":10}"
Set http = CreateObject("MSXML2.XMLHTTP")
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.send RequestBody
End With
response = http.responseText
Debug.Print response
' Outputting the answer to the desired cell
Range("A1").Value = response
Set http = Nothing
End Sub