SendFileByUrl#
השיטה מיועדת לשליחת קובץ שהועלה על ידי Url. ההודעה תתווסף לתור השליחה. ההודעה תישמר 24 שעות בתור ותשלח מיד לאחר אישור טלפוני. קצב שליחת ההודעות מהתור מנוהל על ידי עיכוב בשליחת הודעה פָּרָמֶטֶר.
אנו ממליצים להשתמש באחסון הקבצים החיצוני שלנו דרך ה UploadFile שִׁיטָה.
קבצי וידאו, אודיו ותמונה הזמינים לצפייה והאזנה נשלחים כמו ב-WhatsApp במצב מקורי. מסמכים נשלחים באותו אופן כמו ב-WhatsApp במצב מקורי. סוג הקובץ היוצא ושיטת השליחה נקבעים לפי סיומת הקובץ. תיאור נוסף רק לתמונות ולווידאו.
הגודל המרבי של קבצים יוצאים הוא 100 MB.
שליחת קבצים מרובים עם בקשה אחת אינה אפשרית. נשלח קובץ אחד עם הודעה אחת בלבד. היכולת לשלוח מספר קבצים בו זמנית נוצרת רק בצד של אפליקציית WhatsApp.
אין הגבלות על רזולוציות תמונה. עם זאת, בעת שליחת תמונות דרך ה-API ברזולוציה העולה על 3000x3000 פיקסלים, תמונות ממוזערות לא יופקו.
בַּקָשָׁה#
כדי לשלוח קובץ, עליך לבצע בקשה בכתובת:
לפרמטרים של בקשת apiUrl
, idInstance
ו-apiTokenInstance
, עיין ב לפני שמתחילים סָעִיף.
בקש פרמטרים#
פָּרָמֶטֶר | סוּג | הֶכְרֵחִי | תֵאוּר |
---|---|---|---|
chatId | string | כֵּן | זיהוי צ'אט |
urlFile | string | כֵּן | קישור לקובץ יוצא |
fileName | string | כֵּן | שם הקובץ. חייב להכיל את סיומת הקובץ. דורש קידוד UTF-8 ללא BOM. לְדוּגמָה: test.jpg |
caption | string | לֹא | כיתוב קובץ. כיתוב נוסף לסרטון, תמונות. אורך השדה המרבי הוא 20000 תווים. |
quotedMessageId | string | לֹא | מזהה הודעה מצוטט. אם קיימת, ההודעה תישלח בציטוט הודעת הצ'אט שצוינה |
הערה
-
המלצות לפורמט קישור
- ניתן להשתמש בסמלים a-z, A-Z, 0-9, - (מקף), _ (קו תחתון) בקישור
- אסור שהקישור יכיל תווים מיוחדים ~$€%#£?! ומרווחים
- קידוד תו קישור UTF-8 ללא BOM
- נדרש להעביר קישורים לא מקודדים (המערכת מקודדת את הקישור בעצמה)
- נדרש שהקישור יפנה לקובץ מסוים, ולא לעמוד ה-html
- נדרש להשתמש באחסון מהיר, ללא הגבלה על מספר בקשות הקבצים
-
שם קובץ שדה
יש לציין את השדה fileName עם סיומת הקובץ הנכונה.
זיהוי סוג קובץ על ידי המערכת:
- לפי הסיומת שצוינה בשם הקובץ, בשדה fileName
- אם השדה fileName אינו מכיל סיומת, אזי סוג הקובץ מתקבל על ידי Content-Type מכותרת הקישור
- אם השדה Content-Type בכותרת חסר או מכיל סוג קובץ שאינו קיים, המערכת תנסה לקבוע את סוג הקובץ על סמך הבתים של הקובץ
- אם המערכת לא יכולה לקבוע את סוג הקובץ, הוא יישלח עם סוג ברירת המחדל (קובץ בינארי)
הגיע הזמן לשלוח קובץ
שליחת קבצים מתרחשת במספר שלבים:
- קבלו את הקובץ
- העלאת קובץ לשרת WhatsApp
- בקשה לשלוח קובץ לוואטסאפ
זמן שליחת הקובץ תלוי בגודל הקובץ, מהירות קבלת הקובץ ועיבוד הקובץ בוואטסאפ. בהתאם לגורמים אלה, הזמן לשליחת קובץ יכול להשתנות בין 1 ל-20 שניות.
בקשת גוף לדוגמה#
שליחת הודעה לצ'אט אישי:
{
"chatId": "11001234567@c.us",
"urlFile": "https://my.site.com/img/horse.png",
"fileName": "horse.png",
"caption": "Little horse"
}
שליחת הודעה לצ'אט קבוצתי:
{
"chatId": "11001234567-1581234048@g.us",
"urlFile": "https://my.site.com/img/horse.png",
"fileName": "horse.png",
"caption": "Little horse"
}
שליחת הודעה מצוטטת:
{
"chatId": "11001234567@с.us",
"urlFile": "https://my.site.com/img/horse.png",
"fileName": "horse.png",
"caption": "Little horse",
"quotedMessageId": "361B0E63F2FDF95903B6A9C9A102F34B"
}
תְגוּבָה#
פרמטרי תגובה#
פָּרָמֶטֶר | סוּג | תֵאוּר |
---|---|---|
idMessage | string | מזהה הודעה יוצאת |
גוף לדוגמא תגובה#
{
"idMessage": "3EB0C767D097B7C7C030"
}
SendFileByUrl שגיאות#
לרשימה של שגיאות משותפות לכל השיטות, עיין ב Common errors סָעִיף
בקש דוגמאות#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/sendFileByUrl/{{apiTokenInstance}}"
payload = "{\r\n \t\"chatId\": \"11001234567@c.us\",\r\n\t\"urlFile\": \"https://avatars.mds.yandex.net/get-pdb/477388/77f64197-87d2-42cf-9305-14f49c65f1da/s375\",\r\n\t\"fileName\": \"horse.png\",\r\n\t\"caption\": \"little horse\"\r\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, json=payload)
print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/sendFileByUrl/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"chatId": "12345678910@c.us",
"urlFile": "https://avatars.mds.yandex.net/get-pdb/477388/77f64197-87d2-42cf-9305-14f49c65f1da/s375",
"fileName": "horse.png",
"caption": "лошадка"
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/sendFileByUrl/")
.append({{apiTokenInstance}});
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
var jsonBody = "{\r\n \t\"chatId\": \"11001234567@c.us\",\r\n\t\"urlFile\": \"https://avatars.mds.yandex.net/get-pdb/477388/77f64197-87d2-42cf-9305-14f49c65f1da/s375\",\r\n\t\"fileName\": \"horse.png\",\r\n\t\"caption\": \"little horse\"\r\n}";
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("/sendFileByUrl/")
.append({{apiTokenInstance}});
var response = Unirest.post(requestUrl.toString())
.header("Content-Type", "application/json")
.body("{\r\n \t\"chatId\": \"11001234567@c.us\",\r\n\t\"urlFile\": \"https://avatars.mds.yandex.net/get-pdb/477388/77f64197-87d2-42cf-9305-14f49c65f1da/s375\",\r\n\t\"fileName\": \"horse.png\",\r\n\t\"caption\": \"little horse\"\r\n}")
.asString();
System.out.println(response);
Sub SendFileByUrl()
Dim url As String
Dim RequestBody As String
Dim http As Object
' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
url = "{{apiUrl}}/waInstance{{idInstance}}/SendFileByUrl/{{apiTokenInstance}}"
' chatId is the number to send the message (@c.us for private chats, @g.us for group chats), urlFile - url link, fileName - file name with extension, caption - title
RequestBody = "{""chatId"":""90123456789@c.us"",""urlFile"":""https://my.site.com/img/horse.png"",""fileName"":""horse.png"",""caption"":""horse""}"
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