GHM
6 سال پیش توسط GHM مطرح شد
15 پاسخ

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

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


ثبت پرسش جدید
Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 6 سال پیش مطرح شد
1

سلام
@GHM

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


GHM
تخصص : دولوپر نیمه‌استک
@GHM 6 سال پیش مطرح شد
0

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


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 6 سال پیش مطرح شد
1

سلام
@GHM

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


GHM
تخصص : دولوپر نیمه‌استک
@GHM 6 سال پیش مطرح شد
1

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


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 6 سال پیش مطرح شد
1

سلام
@GHM

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


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

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


Aliakbar Mohajeruni
تخصص : backend php developer
@mohajerun 3 سال پیش مطرح شد
0

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

<?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
تخصص : backend php developer
@mohajerun 3 سال پیش مطرح شد
0

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


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

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


Aliakbar Mohajeruni
تخصص : backend php developer
@mohajerun 3 سال پیش مطرح شد
0

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


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

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


Aliakbar Mohajeruni
تخصص : backend php developer
@mohajerun 3 سال پیش مطرح شد
0

میتونید به یک 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
تخصص : backend php developer
@mohajerun 3 سال پیش مطرح شد
0

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

<?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
@solyfarzane 1 سال پیش مطرح شد
0

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

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


Amin Asghari
@amnhck123 11 ماه پیش مطرح شد
0

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


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

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