RealDream
شنبه 31 مرداد 1394, 12:45 عصر
درود دوستان،
یه تکه کد از تابعی رو براتون قرار میدم که کارش ارسال عکس به کمک متد SendPhoto (https://core.telegram.org/bots/api#sendphoto) تلگرام هست :
public function send_photo($bot_token,$chat_id,$photo_id)
{
$url="https://api.telegram.org/bot".$bot_token."/sendphoto?chat_id=".$chat_id."&photo=".urlencode(trim($photo_id));
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
if($result->ok==true)
return true;
return false;
}//end of send_img function
توی مستندات API گفته شده که باید photo_id یا از تصاویر موجود روی سرور تلگرام باشه و یا به وسیله multipart/form-data آپلود شده باشه :
Photo to send. You can either pass a file_id as String to resend a photo that is already on the Telegram servers, or upload a new photo using multipart/form-data.
من میخوام یه فایل رو از یه آدرس خاص (http://mysite.ir/logo.png) پلود کنم به سرور تلگرام . سورسهای مختلفی رو دیدم مثل روبی یا پایتون که بی دردسر آدرس رو دادن و کار انجام شده اما گویا اینجا توی PHP داستان متفاوته و البته من خیلی آشنائی با PHP هم ندارم ولی نه توی Stack Overflow و نه جای دیگه نتونستم مشکل رو با اطلاعات موجود توی نت حل کنم .
از دوستان خواهش میکنم یه بررسی فرمایند و هر راهنمائی که فکر میکنن مفید رو اینجا اعلام کنن.
در ضمن من با همین مجموعه کد مشکلی با ارسال تکست ندارم و با این قالب ارسال رو انجام میدم :
$result= $message_op->send_message($bot_token,$group_chat_id,$reply_msg) ;
اینم سایر توابع از همون فایل :
<?php
//eastweb information structures
class TgMessage{
public function send_message($bot_token,$chat_id,$text,$disable_li nk_preview=0,$reply_to_msg=0,$reply_markup="0",$hide_keyboard=false)
{
$url="https://api.telegram.org/bot".$bot_token."/sendmessage?chat_id=".$chat_id."&text=".urlencode($text)."&disable_web_page_preview=".$disable_link_preview.($reply_to_msg!=0?'&reply_to_message_id='.$reply_to_msg:'').($reply_ma rkup!="0"?'&reply_markup='.$reply_markup:'').($hide_keyboard!= false?'&hide_keyboard='.$hide_keyboard:'');
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of send message function
public function forward_message($bot_token,$chat_id,$from_chat_id, $message_id)
{
$url="https://api.telegram.org/bot".$bot_token."/forwardmessage?chat_id=".$chat_id."&from_chat_id=".$from_chat_id."&message_id=".$message_id;
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of forward message function
public function send_photo($bot_token,$chat_id,$photo_id)
{
$url="https://api.telegram.org/bot".$bot_token."/sendphoto?chat_id=".$chat_id."&photo=".urlencode(trim($photo_id));
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
if($result->ok==true)
return true;
return false;
}//end of send_img function
public function chat_action($bot_token,$chat_id,$chat_action)
{
$url="https://api.telegram.org/bot".$bot_token."/sendchataction?chat_id=".$chat_id."&chat_action=".$chat_action;
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of chat action function
public function replymarkup_hide($bot_token,$chat_id,$chat_action)
{
$url="https://api.telegram.org/bot".$bot_token."/sendchataction?chat_id=".$chat_id."&chat_action=".$chat_action;
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of chat action function
}
?>
یه تکه کد از تابعی رو براتون قرار میدم که کارش ارسال عکس به کمک متد SendPhoto (https://core.telegram.org/bots/api#sendphoto) تلگرام هست :
public function send_photo($bot_token,$chat_id,$photo_id)
{
$url="https://api.telegram.org/bot".$bot_token."/sendphoto?chat_id=".$chat_id."&photo=".urlencode(trim($photo_id));
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
if($result->ok==true)
return true;
return false;
}//end of send_img function
توی مستندات API گفته شده که باید photo_id یا از تصاویر موجود روی سرور تلگرام باشه و یا به وسیله multipart/form-data آپلود شده باشه :
Photo to send. You can either pass a file_id as String to resend a photo that is already on the Telegram servers, or upload a new photo using multipart/form-data.
من میخوام یه فایل رو از یه آدرس خاص (http://mysite.ir/logo.png) پلود کنم به سرور تلگرام . سورسهای مختلفی رو دیدم مثل روبی یا پایتون که بی دردسر آدرس رو دادن و کار انجام شده اما گویا اینجا توی PHP داستان متفاوته و البته من خیلی آشنائی با PHP هم ندارم ولی نه توی Stack Overflow و نه جای دیگه نتونستم مشکل رو با اطلاعات موجود توی نت حل کنم .
از دوستان خواهش میکنم یه بررسی فرمایند و هر راهنمائی که فکر میکنن مفید رو اینجا اعلام کنن.
در ضمن من با همین مجموعه کد مشکلی با ارسال تکست ندارم و با این قالب ارسال رو انجام میدم :
$result= $message_op->send_message($bot_token,$group_chat_id,$reply_msg) ;
اینم سایر توابع از همون فایل :
<?php
//eastweb information structures
class TgMessage{
public function send_message($bot_token,$chat_id,$text,$disable_li nk_preview=0,$reply_to_msg=0,$reply_markup="0",$hide_keyboard=false)
{
$url="https://api.telegram.org/bot".$bot_token."/sendmessage?chat_id=".$chat_id."&text=".urlencode($text)."&disable_web_page_preview=".$disable_link_preview.($reply_to_msg!=0?'&reply_to_message_id='.$reply_to_msg:'').($reply_ma rkup!="0"?'&reply_markup='.$reply_markup:'').($hide_keyboard!= false?'&hide_keyboard='.$hide_keyboard:'');
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of send message function
public function forward_message($bot_token,$chat_id,$from_chat_id, $message_id)
{
$url="https://api.telegram.org/bot".$bot_token."/forwardmessage?chat_id=".$chat_id."&from_chat_id=".$from_chat_id."&message_id=".$message_id;
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of forward message function
public function send_photo($bot_token,$chat_id,$photo_id)
{
$url="https://api.telegram.org/bot".$bot_token."/sendphoto?chat_id=".$chat_id."&photo=".urlencode(trim($photo_id));
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
if($result->ok==true)
return true;
return false;
}//end of send_img function
public function chat_action($bot_token,$chat_id,$chat_action)
{
$url="https://api.telegram.org/bot".$bot_token."/sendchataction?chat_id=".$chat_id."&chat_action=".$chat_action;
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of chat action function
public function replymarkup_hide($bot_token,$chat_id,$chat_action)
{
$url="https://api.telegram.org/bot".$bot_token."/sendchataction?chat_id=".$chat_id."&chat_action=".$chat_action;
$json = download_url($url);
$result=json_decode($json);
if($result)
if($result->ok)
return true;
return false;
}//end of chat action function
}
?>