محمد
4 سال پیش توسط محمد مطرح شد
11 پاسخ

ارسال پیام به گروه ها توسط ربات تلگرام

سلام دوستان، با کد زیر میشه توسط ربات به گروه پیام ارسال کرد، مشکل من اینکه که توی 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


ثبت پرسش جدید
فرزین
تخصص : طراح و توسعه‌دهنده‌ی وب
@farzin 4 سال پیش آپدیت شد
0

سلام.
api تلگرام هنوز متدی برای دریافت چند chat_id نداره، برای اینکه به چندتا گروه بفرستید، بلاک کد مورد نظر رو توی یک حلقه قرار بدید حالا به هر شکلی که راحت ترید، مثلا:

foreach ($chat_id_array as $chat_id) {
//block
}

در مورد تصویر کپشن دار هم اگه مستندات خود تلگرام رو مشاهده کنید، متد sendPhoto یه پارامتر آپشنال داره برای کپشن و میتونید به سادگی کپشنتون رو با همین متد ارسال کنید.
پ.ن: بات تلگرام محدودیت ارسال پیام تو هر ثانیه‌ رو داره، پس اگه تعداد گروه‌هایی که قراره براشون این پیام رو ارسال کنید رقم عجیب غریبی داره این موضوع رو هم باید هندل کنید. محدودیتش رو دقیق یادم نیست، برای 20-30 تا قطعا مشکلی نداره.
موفق باشید.


محمد
تخصص : همیشه در حال یادگیری ...
@Mohammad79 4 سال پیش مطرح شد
0

@farzin
خیلی خیلی ممنون، به راحتی طبق چیزی که فرمودید کارم انجام شد.
فقط اون مشکل گروه هارو چی کار کنم نمیشه که بیام یکی یکی آدرس هارو اضافه کنم! میشه براش راه حلی میشه پیدا کرد؟ متدی هست نشون بده این ربات توی کدوم گروه ها عضوه ؟


فرزین
تخصص : طراح و توسعه‌دهنده‌ی وب
@farzin 4 سال پیش آپدیت شد
1

خواهش می‌کنم.
نه متاسفانه در حال حاظر تلگرام این امکان رو هم نداره که بگه تو کدوم گروه‌ها عضوه بات. بهترین شیوه استفاده کردن از دیتابیسه یا اگه خیلی چیز ساده‌ ایه یه فایل json (احتمالا تو این کیس کار شمارو راه بندازه) که باید گروه‌هایی که بات توشون اد میشه رو توش ذخیره کنید، بعد اطلاعات رو ازش بگیرید هر موقع خواستید. حالا برای اینکه ببینید بهترین و ساده ترین راه برای پیاده سازی این موضوع چیه پیشنهاد می‌کنم یه سرچی بزنید، قطعا قبلا تو استک اورفلو پرسش مشابهی مطرح شده و راه حل‌های مختلفی هم بیان شده.


محمد
تخصص : همیشه در حال یادگیری ...
@Mohammad79 4 سال پیش مطرح شد
0

@farzin
داداش بازم ممنون😍
https://api.telegram.org/apiToken/getUpdates
طبق چیزایی که فرمودید اینو پیدا کردم و با این میتونم یه سری اطلاعات بگیرم. حالا اینجا باز فعلا یه مورد برام پیش میاد.

چه طوری تمام chat id هارو از json بگیرم و بریزم توی یه آرایه.


فرزین
تخصص : طراح و توسعه‌دهنده‌ی وب
@farzin 4 سال پیش آپدیت شد
0

خواهش‌ میکنم.
مثلا به این شکل می‌تونید این کار رو انجام بدید:

$file = readfile('file_dir');
$res = json_decode($file, true);

https://www.w3schools.com/php/phpfile.asp
https://www.w3schools.com/php/phpjson.asp


محمد
تخصص : همیشه در حال یادگیری ...
@Mohammad79 4 سال پیش مطرح شد
0

مرسی @farzin

توضیح تصویر رو وارد کنید

الان به چه صورت باید بهش دسترسی پیدا کنیم؟


فرزین
تخصص : طراح و توسعه‌دهنده‌ی وب
@farzin 4 سال پیش مطرح شد
0

متوجه نمی‌شم منظورتون رو، شما به اون کدی که عرض کردم خدمتتون میتونید json رو تبدیل کنید به associative array پی اچ پی. شیوه‌ی دسترسی همون شیوه‌ی عادی کار کردن با آرایه‌ها در پی‌اچ‌پیه.
الان چیزی که شما ذخیره کردید به نظر میاد کل پیام‌های ارسال شده به باته. نیازی به این همه دیتا ندارید، احتمالا اینکه الان پیام‌های متعدد از یک chat_id رو هم داشته باشید. قرار شد که chat_id هارو ذخیره کنید و طبیعتا باید اعتبار سنجی هم بکنید که قبلا این مقدار ذخیره شده یا نه، اگه نشده نکنید.
پ.ن:
ببینید برای اینکه بتونید ربات خوبی توسعه بدید لازمه که دست کم به یه زبان تا حد خوبی مسلط باشید. شما php رو انتخاب کردید پس پیشنهاد میکنم تا جایی که میتونید اقلا روی مفاهیم پایه‌ی php مسلط شید وگرنه به مشکلات زیادی بر می‌خورید.
اگه با ویدئو راحت‌ترید راکت آموزش رایگان پی اچ پی داره(البته پایتون هم داره)، اگه متنی راحت ترید برید سراغ w3schools.
موفق باشید.


محمد
تخصص : همیشه در حال یادگیری ...
@Mohammad79 4 سال پیش مطرح شد
0

@farzin

$file = "https://api.telegram.org/botAIP/getUpdates";
$res = json_decode($file, true);
var_dump($res);

آخه اون دیتا همین لینک پس میده و از این طرف هم من وردامپ میکنم نال پس میده!


فرزین
تخصص : طراح و توسعه‌دهنده‌ی وب
@farzin 4 سال پیش آپدیت شد
0

نه این اون چیزی که من خدمتتون عرض کردم نیست.
منطق کلی کاری که باید انجام بشه به این شکله:
1- شما باید چت آیدی هارو از یه راهی به دست بیارین، مثل همین getUpdates و بعد توی یه فایل json یا دیتابیس ذخیره کنید. چت آیدی‌های یکتا که ولید هستن (دست کم چک بشه که تکراری نباشن).
این متد getUpdates بعد از یه مدت توش پیام‌های قدیمی تر حذف می‌شن و نال بر می‌گردونه. پس شما حتما باید چت آیدی‌هارو ذخیره کنید. شما میتونید به صورت زمان بندی شده هر چند وقت یه بار چک کنید ببینید با getUpdates چت آیدی جدیدی اومده که توی دیتابیس یا json شما نباشه، اگه نیست اضافه کنید.
2- در نهایت وقتی می‌خواید این پیام رو توی گروه‌های مختلف ارسال کنید از این json که خودتون ایجاد کردید، یا دیتابیستون چت آیدی‌هارو به همون شکلی که ذخیره کردید دریافت می‌کنید و روش حلقه رو اعمال می‌کنید.


حسین صوفی
تخصص : دانشجو
@isoufi 3 سال پیش مطرح شد
0

سلام خسته نباشید من از طریق کد زیر یه ربات ساختم که بتونم از طریقس به گروه هایی که ربات عضو هست پیام بدم
https://api.telegram.org/bot$TOKEN/sendmessage?chat_id=123456&text=hello
حالا چطوری دستوری اضافه کنم که ایین پیام بصورت خودکار مثلا 20 دقیقه یکبار تکرار بشه؟؟ لطفا راهنمایی کنید


b.nik
تخصص : آزاد
@b.nik 3 سال پیش مطرح شد
0

@isoufi
لطفا اينو به صورت پرسش مطرح كنيد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام