یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
آموزش ارسال پیام متنی و تصویری، ویدئو، فایل (مدیا) با میدلاین
توی آموزش قبلی یاد گرفتید که چجوری میدلاین رو راه اندزی و نصب کنید. از این آموزش به بعد کمی در مورد توابع میدلاین توضیح میدم. برای این آموزش نحوه ارسال انواع پیام متنی و چندرسانه ای رو در نظر گرفتم.
دقت کنید که این آموزشها به درد افراد مبتدی و اونایی که تجربه ای توی کدنویسی زبان PHP ندارند نمیخوره!
ارسال پیام متنی با متود sendMessage
برای ارسال پیام همونجور که توی خود کد سمپل هم یه نمونش رو دیدین باید این متود رو با پارامترهایی که توضیحاتش بصورت واضح در داکیومنت و این آدرس وجود داره به شکل زیر صدا بزنید:
$Updates = $MadelineProto->messages->sendMessage(['no_webpage' => Bool, 'silent' => Bool, 'background' => Bool, 'clear_draft' => Bool, 'peer' => InputPeer, 'reply_to_msg_id' => int, 'message' => 'string', 'reply_markup' => ReplyMarkup, 'entities' => [MessageEntity, MessageEntity], 'parse_mode' => 'string', ]);
توی کد بالا مهمترین مقادیر مربوط میشه به پارامترهای message و peer که به ترتیب متن دلخواه و یوزرنیم یا یوزرآیدی کاربری هستش که میخواین متن ارسال بشه براش؛ پس اگه مثلا بخواین به آیدی Mohsen322 توی تلگرام پیام SALAM MOHSEN! ارسال کنید باید کدهای زیر اجرا بشه. (بقیه پارامترها اختیاری هستن و با خوندن مستندات متوجه کاربردشون میشید و به همین خاطر تو مثال پایین ذکر نشده)
if (!file_exists('madeline.php')) {
copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';
$MadelineProto = new \danog\MadelineProto\API('session.madeline');
$MadelineProto->start();
$MadelineProto->messages->sendMessage(['peer' => '@Mohsen322', 'message' => 'SALAM MOHSEN!']);
اما ارسال تصویر به چه شکله؟
ارسال تصویر با استفاده از متود sendMedia توی میدلاین انجام میشه و یه مقداری با ارسال تصویر توی آموزشهای ربات نویسی متفاوته و توضیحش شاید سخت باشه؛ لینک توضیحاتش اینجاست و نحوه صدا زدن متودش هم به شکل زیر.
$Updates = $MadelineProto->messages->sendMedia(['silent' => Bool, 'background' => Bool, 'clear_draft' => Bool, 'peer' => InputPeer, 'reply_to_msg_id' => int, 'media' => InputMedia, 'message' => 'string', 'reply_markup' => ReplyMarkup, 'entities' => [MessageEntity, MessageEntity], 'parse_mode' => 'string', ]);
اما اگه بخواین به یه آیدی یه تصویر ارسال کنید نمونه کدش به این شکله:
اگر تصویر بیرون از سرور خودتون باشه باید آدرس کاملش رو بنویسید (نمونه 1)
$inputMediaPhotoExternal = ['_' => 'inputMediaPhotoExternal', 'url' => 'http://barkpost.com/wp-content/uploads/2015/10/2-dark-tongue-dog.jpg'];
$MadelineProto->messages->sendMedia(['peer' => '@Mohsen322', 'media' => $inputMediaPhotoExternal, 'message' => 'TEST' ]);
و اگر هم روی سرور خودتون آپلود شده باید آدرس دهی نسبی انجام بدید به صورت زیر (اینجا فایل کدها و تصویر کنار هم قرار دارن) - نمونه 2:
$inputMediaUploadedPhoto = ['_' => 'inputMediaUploadedPhoto', 'file' => 'basic_learning.jpg'];
$MadelineProto->messages->sendMedia(['peer' => '@mohsen322', 'media' => $inputMediaUploadedPhoto , 'message' => 'TEST' ]);
برای بقیه موارد مثل ارسال استیکر یا فایل (Document. zip, rar, xml...) باید برید به این آدرس و نوعهایی که پشتیبانی میکنه رو به شکل بالا آرایه مربوطهاش رو درست و توی پارامتر media جایگذاری کنید.
مثلا برای ارسال یک فایل زیپ خارج از سرور، آرایه به این شکل میشه:
$inputMediaDocumentExternal = ['_' => 'inputMediaDocumentExternal', 'url' => 'http://123.scr.ir/download.php?a=1&d=owghat_zaman_1.zip'];
البته ارسال فایلش یکجورهایی بگیر نگیر داره و خیلی وقتا کار نمیکنه! ولی مثالهای بالا تست شدن و کار میکنن. پس اگه جوابی نگرفتید نا امید نشید و هی تست کنید
مطلبی دیگر از این انتشارات
انتقال امن اطلاعات بین API و App
مطلبی دیگر از این انتشارات
تفاوت SOA و Microservices
مطلبی دیگر از این انتشارات
اصول طراحی سرویس های RESTful