In one of our last tutorials we have installed WhatsApp on Raspberry. Whatsapp at the moment is definitely the most famous app for messaging services, but there are also many alternatives although little known. One of these is Telegram.
"Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed. Unlike WhatsApp, Telegram is cloud-based and heavily encrypted. As a result, you can access your messages from several devices at once, including tablets and computers, and share an unlimited number of photos, videos and files (doc, zip, mp3, etc) of up to 1,5 GB. Thanks to our multi-data center infrastructure and encryption, Telegram is also faster and way more secure. On top of that, Telegram is free and will stay free — no ads, no subscription fees, forever." From https://telegram.org/
Well, then we try to install it on Raspberry
Update the packages with
sudo apt-get update
sudo apt-get upgrade
Install libs: readline or libedit, openssl and (if you want to use config) libconfig and liblua. If you do not want to use them pass options --disable-libconfig and --disable-liblua respectively.
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make
Clone GitHub Repository
git clone --recursive https://github.com/vysheng/tg.git && cd tg
Running this command takes a little time and after install is done.
Navigate to the folder tg
bin/telegram-cli -k tg-server.pub -W
The first time we start telegram we must enter the phone number, including land code (for Italy is +39).
You should receive on your phone a sms message with a code, enter it and hit "Enter"
Now we are ready to use telegram, if you send a message from your smartphone you can see it on terminal.
To send a message type
msg Name_Lastname My message from Raspberry
To send a photo type
send_photo Name_Lastname /folder/photo.jpg
Other supported commands are:
msg Text - sends message to this peer
fwd - forward message to user. You can see message numbers starting client with -N
chat_with_peer starts one on one chat session with this peer. /exit or /quit to end this mode.
add_contact - tries to add contact to contact-list by phone
rename_contact - tries to rename contact. If you have another device it will be a fight
mark_read - mark read all received messages with peer
delete_msg - deletes message (not completly, though)
restore_msg - restores delete message. Impossible for secret chats. Only possible short time (one hour, I think) after deletion
send_photo - sends photo to peer
send_video - sends video to peer
send_text - sends text file as plain messages
load_photo/load_video/load_video_thumb/load_audio/load_document/load_document_thumb - loads photo/video/audio/document to download dir
view_photo/view_video/view_video_thumb/view_audio/view_document/view_document_thumb - loads photo/video to download dir and starts system default viewer
fwd_media 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 - sets userpic. Photo should be square, or server will cut biggest central square part
Group chat options
chat_info - prints info about chat
chat_add_user - add user to chat
chat_del_user - remove user from chat
create_group_chat ... - creates a groupchat with users, use chat_add_user to add more users
chat_set_photo - sets group chat photo. Same limits as for profile photos.
search pattern - searches pattern in messages with peer
global_search pattern - searches pattern in all messages
create_secret_chat - creates secret chat with this user
visualize_key - prints visualization of encryption key. You should compare it to your partner's one
set_ttl - sets ttl to secret chat. Though client does ignore it, client on other end can make use of it
accept_secret_chat - manually accept secret chat (only useful when starting with -E key)
Stats and various info
user_info - prints info about user
history [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
export_card - print your 'card' that anyone can later use to import your contact
import_card - gets user by card. You can write messages to him after that.
quit - quit
safe_quit - wait for all queries to end then quit