본문 바로가기

컴퓨터/기타

Project 1.0 telegram 봇 제작하기.(1)

I. Telegram 설치하기


먼저 Telegram 봇을 제작하기 위해서는 운영체제가 리눅스로 필요하다.

만약 window가 설치되어 있는 컴퓨터의 경우에는 Ubuntu를 usb를 이용해서 설치하거나, 아니면 가상머신을 이용해서 리눅스를 설치하는 방법이 있다.

가상머신을 이용한 경우에는 직접 OS를 설치해서 돌리는 방법보다 성능이 떨어질 수 밖에 없지만, 그래도 window와 ubuntu를 동시에 돌릴 수 있다는 장점이 있다.


가상머신에서 리눅스를 설치하는 방법은 잘 알려져 있으니 여기에서는 따로 설명하지 않겠다.


여기에서는 Ubuntu를 기준으로 설명하도록 하겠다.


순서는 다음과 같다.

  1. 터미널에 들어가서

    wget https://github.com/vysheng/tg/archive/master.zip -O tg-master.zip

    를 먼저 입력해서 파일을 다운로드 한 다음 

    unzip tg-master.zip && cd tg-master
    를 이용해서 압축을 풀어준다.

  2. 터미널에서 

    sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev
    

    를 이용해서 필요한 패키지를 설치해준다.


  3. 다음으로 아까 압축이 풀린 폴더로 들어가서(여기서는 tg-master가 되겠다.) 다음 두 명령어를 차례로 실행해준다.

    ./configure
    make
  4. 이것으로 기본적인 파일들의 설치는 끝났다. 이제 약간의 설정을 추가하도록 하자.(사용자의 정보)
  5. 압축이 풀린 폴더에서 다음 명령어를 실행한다.
    bin/telegram-cli -k tg-server.pub
  6. 아마 인증정보가 없다면 휴대폰 번호를 물어볼 것이다. 아직까지 텔레그램은 휴대폰 번호 없이 아이디를 만드는 것이 불가능하기 때문에 가지고 있는 휴대폰 번호를 입력하도록 한다.(만약 자신의 휴대폰 번호가 쓰이기 싫은 사람은 Voxox 어플을 사용해보는 것을 추천한다.
  7. 이 CLI에서 지원하는 명령어는 아래와 같다. 이렇게 많은 명령어 중에서 필요한 명령어만 사용할 것입니다.

Messaging

  • msg <peer> Text - sends message to this peer
  • fwd <user> <msg-seqno> - forward message to user. You can see message numbers starting client with -N
  • chat_with_peer <peer> starts one on one chat session with this peer. /exit or /quit to end this mode.
  • add_contact <phone-number> <first-name> <last-name> - tries to add contact to contact-list by phone
  • rename_contact <user> <first-name> <last-name> - tries to rename contact. If you have another device it will be a fight
  • mark_read <peer> - mark read all received messages with peer
  • delete_msg <msg-seqno> - deletes message (not completly, though)
  • restore_msg <msg-seqno> - restores delete message. Impossible for secret chats. Only possible short time (one hour, I think) after deletion

Multimedia

  • send_photo <peer> <photo-file-name> - sends photo to peer
  • send_video <peer> <video-file-name> - sends video to peer
  • send_text <peer> <text-file-name> - sends text file as plain messages
  • load_photo/load_video/load_video_thumb/load_audio/load_document/load_document_thumb <msg-seqno> - loads photo/video/audio/document to download dir
  • view_photo/view_video/view_video_thumb/view_audio/view_document/view_document_thumb <msg-seqno> - loads photo/video to download dir and starts system default viewer
  • fwd_media <msg-seqno> send media in your message. Use this to prevent sharing info about author of media (though, it is possible to determine user_id from media itself, it is not possible get access_hash of this user)
  • set_profile_photo <photo-file-name> - sets userpic. Photo should be square, or server will cut biggest central square part

Group chat options

  • chat_info <chat> - prints info about chat
  • chat_add_user <chat> <user> - add user to chat
  • chat_del_user <chat> <user> - remove user from chat
  • rename_chat <chat> <new-name>
  • create_group_chat <user> <chat topic> - creates a groupchat with user, use chat_add_user to add more users
  • chat_set_photo <chat> <photo-file-name> - sets group chat photo. Same limits as for profile photos.

Search

  • search <peer> pattern - searches pattern in messages with peer
  • global_search pattern - searches pattern in all messages

Secret chat

  • create_secret_chat <user> - creates secret chat with this user
  • visualize_key <secret_chat> - prints visualization of encryption key. You should compare it to your partner's one
  • set_ttl <secret_chat> <ttl> - sets ttl to secret chat. Though client does ignore it, client on other end can make use of it
  • accept_secret_chat <secret_chat> - manually accept secret chat (only useful when starting with -E key)

Stats and various info

  • user_info <user> - prints info about user
  • history <peer> [limit] - prints history (and marks it as read). Default limit = 40
  • dialog_list - prints info about your dialogs
  • contact_list - prints info about users in your contact list
  • suggested_contacts - print info about contacts, you have max common friends
  • stats - just for debugging
  • show_license - prints contents of GPLv2
  • help - prints this help

Card

  • export_card - print your 'card' that anyone can later use to import your contact
  • import_card <card> - gets user by card. You can write messages to him after that.

Other

  • quit - quit
  • safe_quit - wait for all queries to end then quit


여기에 있는 내용은 https://github.com/vysheng/tg를 번역하고, 덧붙인 내용임을 밝힙니다.