سلام. دوستان آیا میشه روی سرورهای ایرانی با ربات و API تلگرام کار کنیم یا خیر؟
میخوایم با استفاده از ربات و API تلگرام پستهای وبلاگ رو بفرستیم توی کانال و گروه های تلگرامی که داریم اما بخاطر فیلتر شدن تلگرام نمیدونم شدنی هست یا نه؟ دوستانی که تو کار ساخت و طراحی ربات تلگرام هستند لطفا در این خصوص راهنمایی کنید.
سلام
@GHM
باید تست کنید ببینید با سرور ایرانتون سایت تلگرام باز میشه نمیشه چون رو بعضی دیتا سنتر ها میشه
ولی در کل نه!
چون سرور های ایران نمیتونن به سرور های تلگرام دسترسی بگیرن و از API استفاده کنند (********)
تتنها راه استفاده از هاست و سرور های خارجی ، نظیر آلمان و فرانسه هست .
سلام. سرور ایرانی نداریم اما قصد تهیه اون رو داریم بخاطر همین میخواستم قبل از تهیه سرور ایرانی در این خصوص مطمئن بشم
@Alimotreb
سلام من میخوام با api تلگرام به یه کاربر پیام بفرستم ولی بخاطر فیلتر نمیشه
میشه راه ساده ای که برای حل این مشکل هست رو توضیح بدین؟ ممنونم
از پروکسی استفاده هزنیه بیخودی نده
<?php
$HttpDebug = "https://www.httpdebugger.com/Tools/ViewHttpHeaders.aspx";
$TokenBot = "";
$ChatId ="";
$TelegramApiUrl = "https://api.telegram.org/bot{$TokenBot}/SendMessage?chat_id={$ChatId}&text=test";
$Payloads = [
"UrlBox" => $TelegramApiUrl,
"AgentList" => "MOzilla Firefox",
"VersionsList" => "HTTP/1.1",
"MethodList" => "POST"
];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $HttpDebug);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($Payloads));
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
var_dump( $result );
یا از Guzzle یا هرچیزی دیگه ای
قابلیت و انعطاف پذیری از استفاده ای HTTP/SOCKS proxy. داشته باشه
@mohajerun مرسی از پاسختون
من باید php خام کد بزنم
کدی که دادین کار میکنه؟ چون الان نمیتونم تست کنم
و اینکه کلا برای کار با تلگرام کار دیگه ای که نباید بکنم نه؟
یه سوال دیگه هم داشتم اونم اینکه به من گفتن بات تلگرام یک کالبک فانکشن داره وفتی بهش درخواست میفرستین
میخاستم بدونم همین کد بالا رو بفرستم اون کالبک رو میفرسته یا نه؟ و محتویاتش کالبکه چی هست
ببخشید چون یکم عجله ای هست اگه راهنمایی کنید ممنون میشم
میتونید به یک Regular Expression خیلی ساده به جواب برسید
<div id="ResultData" class="nooverflow">
<h3 class='ls1 t400 h2long'>Response Content</h3>
<pre class='brush: html; toolbar: false; wrap-lines: true;'>
{"ok":true,"result":[]}
</pre>
</div>
م فقط برای ارسال پیام به روی کانالم استفاده کردم و تا اونجا ک یادمه Response و نمیگرفتم چون نیاز اون چنانی نداشتم فقط request میدادم
میتونی تمیزتر و هندل کنی بعضی از خطاهاشو اونوقت دیگ حرف نداره
<?php
$HttpDebug = "https://www.httpdebugger.com/Tools/ViewHttpHeaders.aspx";
$TokenBot = "";
$ChatId ="";
$TelegramApiUrl = "https://api.telegram.org/bot{$TokenBot}/SendMessage?chat_id={$ChatId}&text=test";
//var_dump($TelegramApiUrl);die;
$Payloads = [
"UrlBox" => $TelegramApiUrl,
"AgentList" => "MOzilla Firefox",
"VersionsList" => "HTTP/1.1",
"MethodList" => "POST"
];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $HttpDebug);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($Payloads));
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
$errNo = curl_errno($ch);
$err = curl_error($ch);
curl_close($ch);
if($result){
//$regex = "#<div id=\"ResultData\" class=\"nooverflow\">(.*?)<\/div>#s";
$regex = "~\{(?:[^{}]|(?R))*\}~";
preg_match_all($regex, $result, $matches, PREG_OFFSET_CAPTURE);
echo $matches[0][15][0];
}
راحت ترین و بی دغدغه ترین راه استفاده از ورکر کلادفلر
از این استفاده کن
لینک گیتهاب
در نهایت به جای API تلگرام ورکر خودت رو صدا بزن و تمام
سلام
خیلی ممنون
توی این کد گیتهاب توکن ربات رو کجا باید وارد کنیم؟و اینکه اطلاعات رو چطوری باید پاس بدیم به این ورکر؟اگر امکانش هست یک مثال از نحوه ارسال درخواست بزنید ممنون میشم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟