I am new to Python. I want to broadcast a custom message to the users who registered my bot in a group or in private / personal.
How to do that function? Please help me - thank you
basically, you'll have to keep track of all the user/chat_ids of the groups/chats you bot is a member in. Then for broadcasting, you'll have to iterate over all of them and send a message to each.
The bot API offers neither a functionality to send messages to a bunch of chat_ids at once nor to get all chat_ids where your bot is currently a member in.
In fact, we have some information about such use cases over at the wiki of python-telegram-bot.
However, the logic is mainly implementation independent, i.e. you'd have to apply the same logic if you were to implement your bot with another python library or even a completely different programming language :)
Disclaimer: I'm currently the maintainer of python-telegram-bot.
Related
how to collect all the group chat members from the chat bot using MSTeams?
You can use the GetPagedMembers capability for this - see the docs from Microsoft here: https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet (switch to your language of choice in the samples blocks).
Note that, using this approach, you can only do this when the user is actually interacting with the bot (e.g. posting a message) because you need the context. If that's a problem let me know and I will send additional info.
Here are the two ways that can work for you
Using graph - List members of a chat. Refer this sample.
Get conversation member. (you are already aware about this as I can see.)
I am writing service for messaging between rooms using Hangouts chatbot. Is it possible to create a room with Hangouts chatbot?
https://developers.google.com/hangouts/chat/concepts
If it were generally possible to create a new room programmaticaly with the Hangous API, you could do it with the chatbot.
For example, if you implement the chatbox with Apps Script, you can create a function onMessage(event) and establish was will to happen in case of a certain event.message.text (e.g. create a new chat room if the message text contains the string create new room.
However, for the moment it is not possible to create a new chat room programmatically.
There is a feature request asking for this functionality, but given the potential of abuse, it is controversial either it will be implemented.
See comment #2:
Hello, thank you for the feature request! At the moment rooms cannot
be created via the API to prevent abuse such as a bot or script
spamming room creation. However, this kind of feature has been
discussed internally and may be coming in the future (with
limitations). I will update this issue if more information is
released.
And comment #25:
Thanks for the input. It's great to see some real life use cases. We
fully acknowledge the importance of a CreateRoom(DM) API and we are
actively looking into the right permission model to allow bots to do
so. Please continue to follow this bug as we will post updates here
when appropriate.
We are using bot trees master which uses bot graph dialog for loading graph based dialogs dynamically. We have created a scenario to load multiple intents(whose intents scores are nearly matching). Now the problem I am facing is when I request for single intent , I am getting the bot response and able to enter into next intent but when I request for multiple intents bot is giving the response and when I request for another intent , bot is giving the same response of multiple intents. When bot is entering into multiple intent handler it is not clearing the session and not coming out of that handler. I have tried using session.endConversation().
To understand about bot graph dialog:
https://www.microsoft.com/developerblog/2016/11/11/extending-microsofts-bot-framework-with-graph-baseddialogs-/
Can somebody help on this. Thank you
the builder.IntentDialog() used in this project is no longer considered a best practice. Additionally, further support is not expected. Instead, you will want to use bot.Dialog() to create your dialog flows with a .triggerAction(). The trigger matches on phrases which you can set a score to. Unfortunately, it means you will need to recreate the bot-trees project to fit this new model.
You can find information on managing conversations here, including creating triggers.
If you need a more robust system, you can integrate LUIS into your project. Information regarding recognizing intents with LUIS can be found here.
I am developing a bot for business using Dialogflow. I want to keep an option "Talk to real person". When my customer wants to talk to real person, bot should stop and someone from my support staff will take care of that user.
How is it possible?
How can I pause/stop my bot and let real person handle conversation?
While searching for answer, I send an email to Dialogflow support and got this reply next day.
At this moment, you'll need to handle the task of passing conversations from bot to humans in your custom implementation. You can take a look at the following sample: https://github.com/dialogflow/agent-human-handoff-nodejs.
Hope this may help someone else having similar issue.
By native google, Dialogflow doesn't support bot to human handoff or provide any Web interface to achieve this, but in dialogflow normally the action “input.unknown” used to hand off the conversation to a Human. The “input.unknown” action is built into Dialogflow and used with the default fallback intent. When none of the intents is matched, the default fallback intent is triggered and action associated with it is added in the response also you need to write a logic what bot should do after that.
But to make things easier you can integrate dialogflow with any third-party tool like Kommunicate. As they provide pre-built chat widget user interface and bot to human handoff can be enabled on a click of a button, Please click here for more detailed information
PS: I work for Kommunicate
The issue is related more to the external software that implements Dialogflow than Dialogflow itself.
You can use the PHP code of Support Board as a starting point, or you can use the Support Board software for that directly. It has the feature that asks the user if he/she wants to contact a human agent when the bot does not understand the question. If the user accepts the bot is automatically disabled and an email is sent to the agents.
More details at https://board.support/
PS: I work for Support Board
We are having two teams building two bots for our Facebook fanpage. One is for customer service and the other one is for a quiz campaign. Can we have the two bots on the same fanpage? Will there be any conflicts such as the custom menu?
The short answer is YES!
However unless managed correctly there will be conflict.
I know it is possible to use one chatbot built on ManyChat and another on Flowxo.
I need to ensure that I LIMIT the "keywords" in ManyChat so that ManyChat does not respond and allows FLOWXO to respond.
In my situation, I am using the Pro version of MC to get users subscribed and to further broadcast to them or subscribe them to a sequence. I pass over the conversation to Flowxo for integrations to third party software and for the basic conversational aspect of the chatbot.
Passing the conversation over from one chatbot to the other takes some manipulation of the use of keywords and Flowxo's "unrecognised phrase" flow.
I will post the link to a blog post when I get around to writing about how I did it.
Another issue as you pointed out is the Greeting and Welcome text. I have not figured out a way to control this and as it turns out with my chatbot, users always appear to enter into the chatbot via ManyChat which fortunately for me is exactly what I need.