Бот Telegram проверяет, присоединился ли пользователь - PullRequest
0 голосов
/ 29 октября 2018

Я хочу проверить пользователя, присоединились ли они к каналу телеграммы или нет, и если они не присоединились, отправьте сообщение, что вы должны сначала присоединиться к каналу. метод, который я использовал, getChatMember

telegram.php:

public function sendMessage($userid,$text)
 {
    $url='https://api.telegram.org/bot'.$this->token.'/sendMessage?chat_id='.urlencode($userid).'&text='.urldecode($text);
    file_get_contents($url)   ;
 }

 public function getChatMember($chatid,$userid)
 {
    $url='https://api.telegram.org/bot'.$this->token.'/getChatMember?chat_id=@YYYYYY&user_id=XXXXXXX';
    return file_get_contents($url) ;
 }

index.php:

 $telegram = new telegram(TOKEN,HOST,USERNAME,PASSWORD,DBNAME);
 $result = $telegram->recievedText();
 $userid = $result->message->from->id;
 $text   = $result->message->text;
 $memberresult = $telegram->getChatMember('@YYYYYYYY',$userid);
 if ($memberresult->result->status=='member')
   {}
 else
   {}

но он не может прочитать '$ memberresult-> result-> status'!

когда я использую эту команду:

echo $telegram->getChatMember('@YYYYYYYY',$userid);

результат показывает массив json, подобный этому:

  {"ok":true,"result":{"user":{"id":637716188,"is_bot":true,"first_name":"\u0631\u0628\u0627\u062a \u0632\u0647\u0631\u0627","username":"zg500_bot"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_post_messages":true,"can_edit_messages":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_promote_members":true}}

но не может показать статус из этого массива json:

$memberresult = $telegram->getChatMember('@YYYYYYYY',$userid);
echo ($memberresult->result->status); 

ничего не показывает

...