فایلهای چندرسانهای
آپلود فایل
تصویر یا ویدیو آپلود میکند تا با پارامتر mediaid همراه پیام فرستاده شود. فقط روی خطوط پیامرسان داخلی کار میکند.
POST
https://api.payamras.ir/v1/YOUR_API_KEY/media/upload.json
- درخواست multipart/form-data است و فایل در فیلد File قرار میگیرد.
- تصویر: JPEG یا GIF تا ۱۰ مگابایت. ویدیو: MP4 تا ۲۰ مگابایت و ۶۰ ثانیه.
- فایلی که ۳۰ روز پشت سر هم استفاده نشود حذف میشود.
- فایل پس از آپلود بررسی میشود؛ تا review.status برابر 1 نشده، در پیام قابل استفاده نیست.
پارامترها
| نام | نوع | توضیح |
|---|---|---|
File
الزامی
|
File | فایل تصویر یا ویدیو. |
نمونه درخواست
curl -X POST "https://api.payamras.ir/v1/YOUR_API_KEY/media/upload.json" \
-F "File=@banner.jpg"
<?php
$apiKey = 'YOUR_API_KEY';
$ch = curl_init("https://api.payamras.ir/v1/{$apiKey}/media/upload.json");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'File' => new CURLFile('banner.jpg'),
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = json_decode(curl_exec($ch), true);
if ($result['return']['status'] !== 200) {
throw new RuntimeException($result['return']['message']);
}
const apiKey = "YOUR_API_KEY";
// fileInput: an <input type="file"> element
const form = new FormData();
form.append("File", fileInput.files[0]);
const response = await fetch(`https://api.payamras.ir/v1/${apiKey}/media/upload.json`, { method: "POST", body: form });
const result = await response.json();
if (result.return.status !== 200) {
throw new Error(result.return.message);
}
import requests
api_key = "YOUR_API_KEY"
with open("banner.jpg", "rb") as f:
response = requests.post(f"https://api.payamras.ir/v1/{api_key}/media/upload.json", files={"File": f})
result = response.json()
if result["return"]["status"] != 200:
raise RuntimeError(result["return"]["message"])
پاسخ
فیلدهای هر ردیف entries:
| فیلد | نوع | توضیح |
|---|---|---|
id |
Guid | شناسه فایل؛ همان mediaid در ارسال پیام. |
name |
String | نام فایل. |
mime_type |
String | نوع فایل. |
size |
Long | حجم به بایت. |
duration |
Integer | مدت ویدیو به ثانیه. |
resolution |
String | ابعاد تصویر یا ویدیو. |
status |
Integer | وضعیت پردازش: 0 در حال پردازش، 1 آماده، 2 خطا. |
review.status |
Integer | نتیجه بررسی: 1 تایید، 2 رد. |
{
"return": {
"status": 200,
"message": "تایید شد"
},
"entries": {
"id": "3f2b7c1e-9a4d-4e21-8b0f-6c5d2a1e9f30",
"name": "banner.jpg",
"mime_type": "image/jpeg",
"extension": "jpg",
"size": 284512,
"duration": null,
"resolution": "1080x1080",
"status": 0,
"status_desc": "در حال پردازش",
"review": {
"status": null,
"status_desc": null,
"reason": null,
"reason_desc": null
}
}
}
خطاهای رایج
علاوه بر خطاهای عمومی مثل 403 و
418، این متد ممکن است این کدها را در
return.status برگرداند: