How to send ElectroNeek RPA bot output to Telegram - telegram

I have made a ElectroNeek RPA bot that scouts the web for a particular piece of data and then I wish to send it to my Telegram. Any ideas?

Let's break up the task in two parts.
First, in order to send anything to yourself at telegram you would need to create a telegram bot and find out your telegram ID. A good tutorial on that is here. Not all of it is necessary. Read from the beginning to the words "Every Update object consists of Message objects." (You would need some basic python skills to implement this).
After you are done, you would have two numbers:
bot_token = 'XXXXXXXXXX:AAGs7Rapl-NW00ZoQMs6AP6BfhqvlXXXxXX'
bot_chatID = 'XXXXXXXXX'
Second, you would need to create the HTTP request action in your ElectroNeek flow like so:
The URL property should be a string that is comprised of variables obtained in step one, telegram URL and your message, like so:
'https://api.telegram.org/bot' + bot_token + '/sendMessage?chat_id=' + bot_chatID + '&text=' + your_variable
where "your_variable" is the variable you would like to send yourself on Telegram.

Related

How to remove a sticker from Telegram sticker set (for every user)

I created a sticker set by my bot. I added there some junk images. Now I ask myself a question: How to remove a single sticker from Telegram sticker set for every user?
You should use #Stickers Bot, all you need to do is type /delsticker and follow the directions from there. As long as you are the owner of the sticker pack, it shouldn't be a problem.
Default API connection with URL:
https://api.telegram.org/bot <token>/METHOD_NAME
In order for your bot to interact with your sticker pack, you must create it using the createNewStickerSet method (https://core.telegram.org/bots/api#createnewstickerset )
Send the desired sticker to your bot
Use the get Updates method (https://core.telegram.org/bots/api#getupdates).
In the response, you will get a json structure where you can take the file_id
Use deleteStickerFromSet method (https://core.telegram.org/bots/api#deletestickerfromset)
python example
def deleteStickerFromSet(file_id: str):
data = {
'sticker': file_id,
}
r = requests.post('https://api.telegram.org/bot <token>/' + "deleteStickerFromSet", data=data)
Returns True on success.

Telegram channel- how to get access_hash?

I try really hard to understand howto use Telegram api with telethon. I have some Channels in Telegram, where i want to delete older Messages. Using inputpeerchannel() i need channel_id (No Problem) and channel_hash. I cant findout howto get this channel_hash by channel_id. Thank you from germany
In order to find channel access_hash, you should resolve channel username. Original MTProto method contacts.resolveUsername#f93ccba3 gets #username and returns channel info including access_hash.
In telethon you need to invoke ResolveUsernameRequest to call the above original MTProto method. You may use this code to resolve username to access_hash:
client = TelegramClient(session_file, api_id=00000, api_hash='XXXXX')
client.connect()
response = client.invoke(ResolveUsernameRequest("your_channel_id"))
print(response.chats[0].access_hash)
client.disconnect()
There are 4 ways to get access hash:
From a Group
From username
From contact list
From chats message
So, if you have id only, there is no way to get access hash

Get TELEGRAM Channel/Group ID

Let's say, I've joined TELEGRAM group...
I am just a typical member of GROUP (and thus, cant use any bots there.. ?) so, I am unable to find out the way, how to get GROUP ID.
New Update
Just Simply Forward a message from your channel to This Bot: (https://telegram.me/getidsbot)
Update
1: Goto (https://web.telegram.org)
2: Goto your Gorup and Find your link of Gorup(https://web.telegram.org/#/im?p=g154513121)
3: Copy That number after g and put a (-) Before That -154513121
4: Send Your Message to Gorup
bot.sendMessage(-154513121, "Hi")
I Tested Now and Work like a Charm
Node.js:
Try using TelegramBot#getChat():
bot.getChat("#channelusername").then(function(chat) {
// 'chat' is a Chat object
console.log(chat.id);
});
See API getChat() method and Chat object.
Hope that helps.
There is a unofficicl Plus Messenger client for Android users, and you can see ID in group/channel info.
Supergroup and Channel will looks like 1068773197, which is -1001068773197 for bots (with -100 prefix).
If you just want to obtain channel/user ID, forward message to #RawDataBot.
there are lots of ways to do so.
simplest one: download plus messenger which is a fork of telegram. it shows every channel's id in the about page of that channel.
https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en
thanks to #Sean:
Supergroup and Channel will looks like 1068773197, which is -1001068773197 for bots (with -100 prefix).
Above method works for channels, for groups you may use this method:
Just forward a single message from that chat to #RawDataBot. it will reply you with a json data containing chatid.
via code:
If you are a member of a group, you should receive updates from that group when ever there is any activity from that group. The updates will contain a chats list-element from which you can get a Channel which has the following relevant fields:
id: group_id,
title: "the_group_title",
username: "group_username"
As of my experience ,there are two popular libraries,
python-Telethon --->Telegram Client Library(uses api_id,api_hash)
python-Telegram-bot ---->Telegram Bot (uses api token)
There are lot of ways to get the user_id ,group_id,channel_id .
To get the these ids use Telethon client library
from telethon import TelegramClient,sync
api_id="xxx" #get from telegram website
api_hash="yyy" #get from telegram website
client=TelegramClient(session_object,api_id,api_hash)
client.start()
#To get the channel_id,group_id,user_id
for chat in client.get_dialogs():
print('name:{0} ids:{1} is_user:{2} is_channel{3} is_group:{4}'.format(chat.name,chat.id,chat.is_user,chat.is_channel,chat.is_group))
That is all about, it will print name and id of channel,group,user.
Also, it will check wheather the id is belong to channel or group or user
generally, Channel id starts with negrative(eg:-1001109500936) starts with (-100)
group id is normal and starts with negative
user id starts with positve
Another way is to use 'plus messanger app'
To see all the group,channel,user id
Cheers
Another Simple Way,
client=TelegramClient(session,api_id,api_hash)
client.start()
destination_entity_name="Type User(may be bot) or group or channel name"
entity=client.get_entity(destination_entity_name)
print(entity.stringify()) #All paratmeters
print(entity.id) #user(bot also considered as user) or group
That should be obtainable using tg-messenger-cli: https://github.com/vysheng/tg I haven't had time to try it out yet but friend has made some automated messages for his daughter. Should be quite versatile.
After hours spent, I was able to find the ID of GROUPS using CuteGram app.
Open group there, and click "COPY" icon, that opens a folder, and in the address you will see the ID.
Invite your bot to your group
and use ur bot to text /myid
then use the GetUpdates api, you shall have your group ID

How do I add multiple locations on Google Maps via Telegram Bot?

I want to send multiple locations pinned on a single map into telegram-bot, by using send location function. is there a way to send multiple locations to telegram bot? I try and just can send one location to telegram bot.
As I understood you want to send multiple locations to the user so you don't want to put numbers in the SendLocation method. If the locations that need to be sent are some fixed locations you can save them in an array or in a DB and use a loop to send them.
But if they're not fixed you have to send them to the bot first and then force the bot to send to a user or anywhere else.(channel or group) The code below may help you:
//Send the location like: latitude=xxx&longtitude=yyy;
if(update.Message.Text.Contains("latitude") && update.Message.Text.Contains("longtitude"))
{
string latitude = text.Split('&').First();
string longtitude = text.Split('&').Last();
//splites the input text into two parts first part is latitude=xxx and second or last part is longtitude=yyy. because the string is splited based on & sign
float latitue_num = float.Parse(latitude.Split('=').Last());
float longtitude_num = float.Parse(longtitude.Split('=').Last());
//does the same action for "latitude=xxx" and "longtitude=yyy" after that the number xxx is stored in latitude_num and yyy is stored in longtitude_num
var req = new SendLocation(update.Message.Chat.Id, latitue_num, longtitude_num);
await bot.MakeRequestAsync(req);
}
Of course if the number of locations is too big, it's better to use a database and send them to bot from the DB.
And if you want to send the locations from a user to the bot(not from bot to a user) you can use:
if(update.Message.Location != null)
{
.
.
.
//here you can do whatever you want every time bot receives a location. no matter how many locations are sent to the bot the bot will receive them one by one and do the action(s) listed in this method.
}
I hope these will help you, your question was not clear therefore I explained this way.
You Can't.
This method Just send point on the map.
Check Telegram Bot API (https://core.telegram.org/bots/api#sendlocation)

how to use telegram API codes?

i registered in https://my.telegram.org/apps and got api_hash and api_id and public key ,now i want to use this function https://core.telegram.org/method/auth.sendCode
auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
---functions---
auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
Query example
(auth.sendCode "79991234567" 1 32 "test-hash" "en")
=
(auth.sentCode
phone_registered:(boolFalse)
phone_code_hash:"2dc02d2cda9e615c84"
)
d16ff372 3939370b 33323139 37363534 00000001 00000020 73657409 61682d74 00006873 e77e812d
=
2215bcbd bc799737 63643212 32643230 39616463 35313665 00343863 e12b7901
how can i use this query example?
and what is this binaries? ==> "d16ff372 3939370b 33323139 ...."
You can't directly start to send queries to Telegram. Creating api_hash and api_id is a basic step to start with Telegram API. Hope you know that Telegram uses its own protocol called 'MTProto'. You can get the detailed discription in Telegram's official website.
As per Telegram Protocol, the Client and Server shares the 'Authorization Key' (which is used for encryption and decryption) using Diffie-Hellman algorithm. For sample please see https://core.telegram.org/mtproto/samples-auth_key. After creating the authorization key successfully, we can start to call Telegram APIs which is called as RPC queries.
You can also refer https://github.com/ex3ndr/telegram-api for implementation.
The hexadecimal data in the example is nothing but the query made by following the algorithm.
You need to start from making a valid Telegram AuthKey.
The patterns and functions you build up along the way while doing this will help you towards building the rest of your Telegram API.
You can start with this here: https://stackoverflow.com/a/32809138/44080
And them work up, step by step until you have the AuthKey as described in these links
https://core.telegram.org/mtproto/auth_key
https://core.telegram.org/mtproto/samples-auth_key
Part of the problem you will initially face is the documentation.
Working through this step by step and getting familiar with the authors writing style is a big help too.

Resources