I want my bot to edit a message it wrote by appending some text to the original message. I don't want to store the message I sent so I would like to save the message identifier only and use it to get the message, append the text and edit the message but I can't find a way to get the message from telegram.
How could I do this?
When posting your message to the telegram server, the server will return an object which contains the message, as well as the corresponding message_id.
Possible response:
{
"ok":true,
"result": {
"message_id": 123,
"from": {"id": 98765, "first_name": "...", "username": "..."},
"chat": {"id": 12345, "first_name": "...", "username": "...", "type": "private"},
"date": 1475274917, "text": "Message Text"
}
}
Later on you can edit the message with editMessageText.
Related
I'm using BankTransfers endpoint to add transfers between bank accounts. It used to work like a charm in the past. I did not make any changes to my code, but transfers suddenly stopped to appear. Xero responds with 200 code and status OK but transfers just won't show up. Also, TransferID looks like this for some reason:
"BankTransferID": "00000000-0000-0000-0000-000000000000"
ValidationErrors is empty so it seems that the transfer is accepted as valid, but won't show up in any of the accounts involved.
Transfer body I use looks like this:
{
"BankTransfers": [{
"FromBankAccount": {"Code": transfer_from },
"ToBankAccount": {"Code": transfer_to},
"Date": transaction_date.strftime("%Y-%m-%d"),
"Amount": amount}]}
And response looks like this:
{
"Id": "1d28fdb6-cadf-4f4c-9801-55b47567e87d",
"Status": "OK",
"ProviderName": app_name_hidden,
"DateTimeUTC": "\/Date(1628847828463)\/",
"BankTransfers": [
{
"BankTransferID": "00000000-0000-0000-0000-000000000000",
"DateString": "2021-08-13T00:00:00",
"Date": "\/Date(1628812800000+0000)\/",
"FromBankAccount": {
"AccountID": account_id_hidden,
"Code": "1057",
"Name": account_name
},
"ToBankAccount": {
"AccountID": account_id_hidden_2,
"Code": "1073",
"Name": account_name_2
},
"Amount": 1000.00,
"FromBankTransactionID": "00000000-0000-0000-0000-000000000000",
"ToBankTransactionID": "00000000-0000-0000-0000-000000000000",
"CurrencyRate": 1.0000000000,
"ValidationErrors": []
}
]
}
Did anyone face the same issue? Would appreciate any suggestions.
Our developers made a release that fix this issue.
Apologies for the inconvenience caused
I am trying to build Slack application with asp net core server. Currently, I have added Slash command which makes a request to my local server through ngrok. Once my server receives that request, it makes a post request to configured slack webhook to display interactive message which looks like pic from attachment.
I want user to be able to select yes or no and receive the result in my controller, but I can't realize how to tell Slack where should it make a post request. I attach the code of this message which is posted through weebhook into Slack:
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "This is a section block with a button."
}
},
{
"type": "actions",
"block_id": "actionblock789",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Yes"
},
"style": "primary",
"value": "yes"
},
{
"type": "button",
"text": {
"type": "plain_text",
"text": "No"
},
"value": "no"
}
]
}
]
}
What I have in netcore is TestController with route /api/test which I suppose should receive from Slack a payload where information about selected button is set, but I couldn't find a way where specify a url in this json code.
You can not configure a URL in the JSON code. That is not how it works with the Slack API.
Slack will send all responses to interactive message - like when someone clicks on a button - to the configured request URL of your Slack app. Check out this link how to find that parameter: documentation
I am having issues when trying to create a Zone using the API.
I can create the zone with the basic info, but as soon as I want to add another property (specifically "location") I get an error.
This is my dataset I use for the POST
def id_prov ={
"domainId": "$DomainId",
"name": "$ZoneName",
"login": {
"apLoginName": "xxxxx",
"apLoginPassword": "xxxxx"
},
"description": "$jira_summ",
"version": "3.5.1.0.1010",
"countryCode": "ZA"
"location": "$CalledStationName_val",
}
The API creates everything until I either include the "location" property in the original POST or if I try a PUT or PATCH atferwards.
Result value:
{"message":["object instance has properties which are not allowed by the schema: [\"location\"]"],"errorCode":101,"errorType":"Bad HTTP request"}
Anyone come across this or have any ideas on how to get this working?
Thanks
A comma is required after "countryCode": "ZA". The post payload should look like this:
def id_prov ={
"domainId": "$DomainId",
"name": "$ZoneName",
"login": {
"apLoginName": "xxxxx",
"apLoginPassword": "xxxxx"
},
"description": "$jira_summ",
"version": "3.5.1.0.1010",
"countryCode": "ZA",
"location": "$CalledStationName_val",
}
I'm trying to create an event using the API console and keep getting errors. Any ideas why?
I've been using different versions of the example value:
{
"name": "string",
"description": "string",
"status": "string",
"event_id": "string",
"start_epoch": 0,
"end_epoch": 0,
"industry": "string",
"archived": true,
"deleted": true,
"legacy_id": 0,
"is_public": true
}
I get the following back. Any thoughts?
{
"code": "BadRequestError",
"message": "[\"Has time can't be blank\",\"true is not included in the list\"]"
}
You will need to fetch the user/team information first
Once you have your oauth token from above and set to the Authorization header, make a call to https://developer-portal.socialtables.com/api-console#!/Authentication/get_4_0_oauth_token
This will give you the user and team object back to make subsequent calls to make events
Once you have the team_id you can now make events
You can POST to /4.0/events
Swagger doc: https://developer-portal.socialtables.com/api-console#!/Events/post_4_0_events
Example POST payload:
{
"name": "NAME",
"description": "DESCRIPTION",
"status": "new",
"start_epoch": TIME_IN_MS,
"end_epoch": TIME_IN_MS,
"industry": "INDUSTRY_TYPE",
“has_time”: 1 // 0 = all day event, 1 = from/to a specific time in day
}
- This will return the event ID under data.event.id in the response from the above POST
- You can then link the user to:
https://home.socialtables.com/events/EVENT_ID
I'm trying to update an option value using the BigCommerce api.
The documentation says PUT /options/values/id.json
The console says PUT options/id/values.json
I think it should be PUT options/id/values/id.json, which returns a 200 response code, but does not execute the update.
Any information on what the right endpoint is for this and if it works?
Basically, if you do a GET request on options
{
"id": 3,
"name": "Colors",
"display_name": "Color",
"type": "CS",
"values": {
"url": "https://store-xxx.mybigcommerce.com/api/v2/options/3/values.json",
"resource": "/options/3/values"
}
}
The resource endpoint shows that the URL is options/id/values.json. But, this gives you all the values associated with the option. If you want to retrieve a specific option the endpoint is something similar to /api/v2/options/3/values/7.json
{
"id": 7,
"option_id": 3,
"label": "Silver",
"sort_order": 1,
"value": "#cccccc"
}
Doing a PUT request on this - (On REST console, setting the header content-type to application/json and sending raw JSON data) updates the label - Changed Silver to silver)
{
"id": 7,
"option_id": 3,
"label": "silver",
"sort_order": 1,
"value": "#cccccc"
}