How to make twitter bot track tweets from our followers? - node.js

I was making a twitter bot with Twit, I found making tutorials using T.stream('user')
to get stream data about our account, now its deprecated. So in 2021, how can i achieve these?
requirements:
Know when someone follows my bot, and make a thanks post.
Know when someone in my followers list or following list makes a tweet.
Also I have a doubt, when we use stream, old data is also coming, so how exactly stream works? if i only want latest tweets, I have to sent get by setting interval?

For the new followers, you will need to build something using the Account Activity API, which uses webhooks to send you event messages. You will need to filter for the follow events.
For new Tweets from people you are following, you will need to poll the home timeline endpoint. There’s no realtime method for this.

Related

Any idea how to make a notification of twitch bans like StreamerBans for a twitter bot?

I want to create a twitter bot on node.js that notifies about bans / unbans and streams on twitch but I do not know how I have seen several "tutorials" but none shows any way, I am not very experienced in this and it is my first time working with Twitch Api and Twitter Api
Assuming you are familiar with how API works in general and this is to be designed for your own channel, first I would recommend reviewing the Twitch API documentation at https://dev.twitch.tv/docs/api#introduction to learn how to get started with your app.
Once you have your client-ID and Oath2 token you will be better prepared for learning to use the API calls to gather the information you're looking to pull.
For banned users there are two ways you can pull this information with the following requests:
GET https://api.twitch.tv/helix/moderation/banned
https://dev.twitch.tv/docs/api/reference#get-banned-users
and
GET https://api.twitch.tv/helix/moderation/banned/events
https://dev.twitch.tv/docs/api/reference#get-banned-events
Depending on the amount of information you want to gather will determine which requests you want to use.
I hope this helps in your ventures.

Telegram Bot Event When Users Join To Channel

After create telegram bot, access and admin this bot to channel. how to get channel members list or event when users join to this channel?
Pretty disappointed with the current answers, so I'll leave an updated (as of February 2018) answer that explains how to do this with the Telegram API itself, as well as with the framework I am using, Telegraf for Node.
The Telegram API is both very powerful, and pretty simple as far as API's go. If you are using the polling method of getting updates, and not websockets which are a whole other issue, checking if someone new has been added to a group or channel is very easy.
The API method getUpdates returns an array of Update objects, which contain all of the possible information you could want including any messages sent, inline queries, and new chat members. To get any new chat members you simply need to access update.message.new_chat_members which will contain an array of new users. For reference you can look in the API documentation here.
To fetch the update objects in browser, or with curl, all you have to do is send a GET or POST request to https://api.telegram.org/botYOUR-BOT-TOKEN/getUpdates. Then just look for messages->new_chat_members.
If you are using the Telegraf bot framework with NodeJs you can use the bot.on method with the event new_chat_members.
Example:
bot.on('new_chat_members', (ctx) => console.log(ctx.message.new_chat_members))
I know this was asked a while ago, but I hope this helps other people searching.
From docs:
new_chat_members New members that were added to the group or supergroup and information about them (the bot itself may be one of these members)
So i think you can't.
To get updates on users join group or channel you must correctly setup webhook for your bot. This update type is disabled by default. See https://core.telegram.org/bots/api#setwebhook
allowed_updates
A JSON-serialized list of the update types you want your bot to
receive. For example, specify [“message”, “edited_channel_post”,
“callback_query”] to only receive updates of these types. See Update
for a complete list of available update types. Specify an empty list
to receive all update types except chat_member (default). If not
specified, the previous setting will be used.
Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received
for a short period of time.
So, the request should look like this:
https://api.telegram.org/<BOT_TOKEN>/setWebhook?url=<WEBHOOK_URL>&allowed_updates=["chat_member"]
Yes! You can use this:
https://api.telegram.org/bot[TOKEN]/promoteChatMember?chat_id=#[channelname]&user_id=[user_id]
if user is joined response is ok, else response is not ok.

How to use redis for notifications in NodeJS/MongoDB?

I have running on NodeJs/MongoDB and Android/HTML client where people are able to follow posts, I store their ids in an array of followers in the post's document.
I want to implement a notification feature when a new comment comes I want to notify all the followers.
So, I have looked across the web but I couldn't get one tutorial where I understood exactly how things work.
I have seen many recommend the Redis Pub/Sub, but from what I have read Redis is a in-memory database, so I was thinking, I could create a channel in Redis with the post's Id, when the user follows that post I would subscribe him to the channel, then when a new comment comes i just publish to the channel. Is this how it works?? If so, then how about when the user goes off then comes back in later, And how about when there are many posts, won't Redis clear the channel then I wouldn't be able to send the notification to all the followers?
I think I'm understanding it all wrong,I'd appreciate your help. How exactly can I be able to send a notification to all followers?

Is there a way to get Instagram #Mention History via API or otherwise?

The native application doesn't show all the activity, only the most recent.
Therefore I lose 70-90% of my notifications overnight. There must be a way to get all that historical data.
I told you can't, but, thinking.. you can. :)
The API don't provide that facility.. You can check all endpoints here: http://instagram.com/developer/endpoints/
But you can iterate over all your medias an get all comments and likes. If you store it locally, after, will be possible to request API again and check your new unseen interactions.
It will work for likes and comments.

how subscribing to instagram realtime api helps me to get user/media details

I have subscribed to instagram realtime api to receive POST updates for hashtag #sudhir
I am able to get updates to my server this way :
{"changed_aspect":"media", "subscription_id":2935881, "object":"tag", "object_id":"sudhir", "time":1362748903}
I don't find any user related or media related info in these updates. I found in SO that we have to hit their (instagram) endpoints explicitly to get photos/user info, inspite of subscribing to endpoints.
If we have to make request explicitly, then what is the use of subscribing to particular endpoint.?
What is the use of this json data ({"changed_aspect":"media","subscription_id":2935881,"object":"tag","object_id":"nofilter","time":1362748903}) we get in request body of our servlet. ?
Can we use this data in any way to get actual data of user/media ?
Any help or suggestions would be appreciated :)
Nothing useful I'm afraid. Once you have that information you know that something has changed on Instagram's end. You are then supposed to fire off the corresponding request. From your example it looks like you want to then do a tag/recent/ request and filter out anything earlier than the "time" variable.
Not the easiest way to do things unfortunately but they seem to have decided that the hard way of doing things is the way to go.

Resources