سلام دوستان، با کد زیر میشه توسط ربات به گروه پیام ارسال کرد، مشکل من اینکه که توی chat_id باید آیدی یه گروه حتما درج کنم، تا پیام به اون گروه خاص بره! ولی من میخوام این پیام به تمامی گروه هایی که ربات توش عضو هستش ارسال بشه. بنظرتون chat_id چی باید ست کنم؟
و مورد دیگه هم چه طوری تصویر کپشن دار هم بفرستم؟
ممنون میشم راهنمایی کنید.
<form>
<input type="text" name="text" placeholder="Your Message">
<input type="submit" name="submit" placeholder="Send">
</form>
<?php
if(isset($_GET['submit'])){
$text = $_GET['text'];
$apiToken = "API";
$data = [
'chat_id' => '@UserName',
'text' => $text
];
$response = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) );
echo "Done";
};
?>
@milad @golshahimohammadreza @hesammousavi @hossein.r.1442 @saman1111 @mhyeganeh @endworld @SobhanDadkhah
سلام.
api تلگرام هنوز متدی برای دریافت چند chat_id نداره، برای اینکه به چندتا گروه بفرستید، بلاک کد مورد نظر رو توی یک حلقه قرار بدید حالا به هر شکلی که راحت ترید، مثلا:
foreach ($chat_id_array as $chat_id) {
//block
}
در مورد تصویر کپشن دار هم اگه مستندات خود تلگرام رو مشاهده کنید، متد sendPhoto یه پارامتر آپشنال داره برای کپشن و میتونید به سادگی کپشنتون رو با همین متد ارسال کنید.
پ.ن: بات تلگرام محدودیت ارسال پیام تو هر ثانیه رو داره، پس اگه تعداد گروههایی که قراره براشون این پیام رو ارسال کنید رقم عجیب غریبی داره این موضوع رو هم باید هندل کنید. محدودیتش رو دقیق یادم نیست، برای 20-30 تا قطعا مشکلی نداره.
موفق باشید.
خواهش میکنم.
نه متاسفانه در حال حاظر تلگرام این امکان رو هم نداره که بگه تو کدوم گروهها عضوه بات. بهترین شیوه استفاده کردن از دیتابیسه یا اگه خیلی چیز ساده ایه یه فایل json (احتمالا تو این کیس کار شمارو راه بندازه) که باید گروههایی که بات توشون اد میشه رو توش ذخیره کنید، بعد اطلاعات رو ازش بگیرید هر موقع خواستید. حالا برای اینکه ببینید بهترین و ساده ترین راه برای پیاده سازی این موضوع چیه پیشنهاد میکنم یه سرچی بزنید، قطعا قبلا تو استک اورفلو پرسش مشابهی مطرح شده و راه حلهای مختلفی هم بیان شده.
@farzin
داداش بازم ممنون😍
https://api.telegram.org/apiToken/getUpdates
طبق چیزایی که فرمودید اینو پیدا کردم و با این میتونم یه سری اطلاعات بگیرم. حالا اینجا باز فعلا یه مورد برام پیش میاد.
چه طوری تمام chat id هارو از json بگیرم و بریزم توی یه آرایه.
خواهش میکنم.
مثلا به این شکل میتونید این کار رو انجام بدید:
$file = readfile('file_dir');
$res = json_decode($file, true);
https://www.w3schools.com/php/phpfile.asp
https://www.w3schools.com/php/phpjson.asp
متوجه نمیشم منظورتون رو، شما به اون کدی که عرض کردم خدمتتون میتونید json رو تبدیل کنید به associative array پی اچ پی. شیوهی دسترسی همون شیوهی عادی کار کردن با آرایهها در پیاچپیه.
الان چیزی که شما ذخیره کردید به نظر میاد کل پیامهای ارسال شده به باته. نیازی به این همه دیتا ندارید، احتمالا اینکه الان پیامهای متعدد از یک chat_id رو هم داشته باشید. قرار شد که chat_id هارو ذخیره کنید و طبیعتا باید اعتبار سنجی هم بکنید که قبلا این مقدار ذخیره شده یا نه، اگه نشده نکنید.
پ.ن:
ببینید برای اینکه بتونید ربات خوبی توسعه بدید لازمه که دست کم به یه زبان تا حد خوبی مسلط باشید. شما php رو انتخاب کردید پس پیشنهاد میکنم تا جایی که میتونید اقلا روی مفاهیم پایهی php مسلط شید وگرنه به مشکلات زیادی بر میخورید.
اگه با ویدئو راحتترید راکت آموزش رایگان پی اچ پی داره(البته پایتون هم داره)، اگه متنی راحت ترید برید سراغ w3schools.
موفق باشید.
$file = "https://api.telegram.org/botAIP/getUpdates";
$res = json_decode($file, true);
var_dump($res);
آخه اون دیتا همین لینک پس میده و از این طرف هم من وردامپ میکنم نال پس میده!
نه این اون چیزی که من خدمتتون عرض کردم نیست.
منطق کلی کاری که باید انجام بشه به این شکله:
1- شما باید چت آیدی هارو از یه راهی به دست بیارین، مثل همین getUpdates و بعد توی یه فایل json یا دیتابیس ذخیره کنید. چت آیدیهای یکتا که ولید هستن (دست کم چک بشه که تکراری نباشن).
این متد getUpdates بعد از یه مدت توش پیامهای قدیمی تر حذف میشن و نال بر میگردونه. پس شما حتما باید چت آیدیهارو ذخیره کنید. شما میتونید به صورت زمان بندی شده هر چند وقت یه بار چک کنید ببینید با getUpdates چت آیدی جدیدی اومده که توی دیتابیس یا json شما نباشه، اگه نیست اضافه کنید.
2- در نهایت وقتی میخواید این پیام رو توی گروههای مختلف ارسال کنید از این json که خودتون ایجاد کردید، یا دیتابیستون چت آیدیهارو به همون شکلی که ذخیره کردید دریافت میکنید و روش حلقه رو اعمال میکنید.
سلام خسته نباشید من از طریق کد زیر یه ربات ساختم که بتونم از طریقس به گروه هایی که ربات عضو هست پیام بدم
https://api.telegram.org/bot$TOKEN/sendmessage?chat_id=123456&text=hello
حالا چطوری دستوری اضافه کنم که ایین پیام بصورت خودکار مثلا 20 دقیقه یکبار تکرار بشه؟؟ لطفا راهنمایی کنید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟