راکت

استفاده از API تلگرام روی سرورهای ایرانی

15 پاسخ

سلام. دوستان آیا میشه روی سرورهای ایرانی با ربات و API تلگرام کار کنیم یا خیر؟
میخوایم با استفاده از ربات و API تلگرام پستهای وبلاگ رو بفرستیم توی کانال و گروه های تلگرامی که داریم اما بخاطر فیلتر شدن تلگرام نمیدونم شدنی هست یا نه؟ دوستانی که تو کار ساخت و طراحی ربات تلگرام هستند لطفا در این خصوص راهنمایی کنید.

GHM
GHM
@GHM
ثبت پرسش جدید

پاسخ‌ها

15
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@GHM

باید تست کنید ببینید با سرور ایرانتون سایت تلگرام باز میشه نمیشه چون رو بعضی دیتا سنتر ها میشه
ولی در کل نه!
چون سرور های ایران نمیتونن به سرور های تلگرام دسترسی بگیرن و از API استفاده کنند (********)
تتنها راه استفاده از هاست و سرور های خارجی ، نظیر آلمان و فرانسه هست .

GHM
GHM
@GHM

تخصص: دولوپر نیمه‌استک

سلام. سرور ایرانی نداریم اما قصد تهیه اون رو داریم بخاطر همین میخواستم قبل از تهیه سرور ایرانی در این خصوص مطمئن بشم

شاید پاسخ شما همین‌جا باشد

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@GHM

99 درصدشون که از دیتا سنتر های ، افرانت و پارس آنلاین و زیر ساخت و برج میلاد هستند ، باز نمیکنند!
مطمئن باشید

GHM
GHM
@GHM

تخصص: دولوپر نیمه‌استک

@Alimotreb بسیار ممنون پس دور سرورهای ایرانی رو خط میکشیم

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@GHM

بله برای تلگرام بیخیال بشید ایران رو
تو کشور های خارجی هم آلمان و فرانسه برای میزبانی وب و تلگرام مناسب هست.

میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

@Alimotreb
سلام من میخوام با api تلگرام به یه کاربر پیام بفرستم ولی بخاطر فیلتر نمیشه
میشه راه ساده ای که برای حل این مشکل هست رو توضیح بدین؟ ممنونم

Aliakbar Mohajeruni
Aliakbar Mohajeruni
@mohajerun

تخصص: backend php developer

از پروکسی استفاده هزنیه بیخودی نده

<?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 );
Aliakbar Mohajeruni
Aliakbar Mohajeruni
@mohajerun

تخصص: backend php developer

یا از Guzzle یا هرچیزی دیگه ای
قابلیت و انعطاف پذیری از استفاده ای HTTP/SOCKS proxy. داشته باشه

میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

@mohajerun مرسی از پاسختون
من باید php خام کد بزنم
کدی که دادین کار میکنه؟ چون الان نمیتونم تست کنم
و اینکه کلا برای کار با تلگرام کار دیگه ای که نباید بکنم نه؟
یه سوال دیگه هم داشتم اونم اینکه به من گفتن بات تلگرام یک کالبک فانکشن داره وفتی بهش درخواست میفرستین
میخاستم بدونم همین کد بالا رو بفرستم اون کالبک رو میفرسته یا نه؟ و محتویاتش کالبکه چی هست
ببخشید چون یکم عجله ای هست اگه راهنمایی کنید ممنون میشم

Aliakbar Mohajeruni
Aliakbar Mohajeruni
@mohajerun

تخصص: backend php developer

دوست عزیز در واقع کاری انجام میشه به این صورت
با یک bypass پروکسی یا راه فرعی از یک سرور دیگر دستورات به سرور تلگرام میفرستیم همین و هرچی دیگ پیدا کردم از این طرف محدودش کردن این بنظرم خوبه
تو این لینک نحوه استفادشو گفته:
لینک اول
لینک دوم
لینک سوم

میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

@mohajerun
مرسی واقعا و سوال اخر اینکه کدی که دادین html برمیگردونه
میشه json اش کرد؟

Aliakbar Mohajeruni
Aliakbar Mohajeruni
@mohajerun

تخصص: backend php developer

میتونید به یک 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 میدادم

Aliakbar Mohajeruni
Aliakbar Mohajeruni
@mohajerun

تخصص: backend php developer

میتونی تمیزتر و هندل کنی بعضی از خطاهاشو اونوقت دیگ حرف نداره

<?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];
}
Soheyl Farzane
Soheyl Farzane
@solyfarzane

راحت ترین و بی دغدغه ترین راه استفاده از ورکر کلادفلر
از این استفاده کن
لینک گیتهاب

در نهایت به جای API تلگرام ورکر خودت رو صدا بزن و تمام

Amin Asghari
Amin Asghari
@amnhck123

سلام
خیلی ممنون
توی این کد گیتهاب توکن ربات رو کجا باید وارد کنیم؟و اینکه اطلاعات رو چطوری باید پاس بدیم به این ورکر؟اگر امکانش هست یک مثال از نحوه ارسال درخواست بزنید ممنون میشم

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

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