elsa-workflows / elsa-workflows/elsa-extensions

Add X (formerly Twitter) Integration

Open
#21 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **Twitter** in Elsa Workflows. The module should allow workflows to interact with Twitter, supporting post creation, user interactions, messaging, media uploads, and monitoring activities.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.Twitter`
- [ ] Implement **Workflow Activities**:
- [ ] **AddMemberToList** - Adds a member to a list (maximum of 5,000 members per list).
- [ ] **CreatePost** - Posts a new tweet.
- [ ] **DeleteMessage** - Deletes a direct message specified by its ID.
- [ ] **DeletePost** - Removes a post.
- [ ] **GetMessage** - Retrieves a single direct message by ID.
- [ ] **GetUser** - Retrieves details about a user specified by ID or screen name.
- [ ] **GetUserPost** - Retrieves a single post by post ID.
- [ ] **LikeUnlikeTweet** - Likes or unlikes a tweet as the authenticating user.
- [ ] **ListFollowers** - Retrieves a collection of users following the specified user.
- [ ] **ListLikes** - Retrieves the most recent posts liked by you or a specified user.
- [ ] **ListLists** - Retrieves all lists the authenticating or specified user subscribes to, including their own.
- [ ] **ListMentions** - Retrieves the 20 most recent mentions for the authenticating user.
- [ ] **ListMessages** - Retrieves all direct messages within the last 30 days, sorted in reverse-chronological order.
- [ ] **ListPendingFollowerRequests** - Retrieves IDs for users who have a pending request to follow the authenticating user.
- [ ] **ListRepostsReposters** - Retrieves up to 100 most recent reposts or user IDs of users who have reposted a post.
- [ ] **ListUserPosts** - Retrieves a list of the most recent posts by a user.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **RepostUnrepostPost** - Reposts or unreposts a post, returning the original post with repost details embedded.
- [ ] **SearchPosts** - Retrieves posts that meet specified criteria.
- [ ] **SearchUsers** - Searches for public user accounts on X (formerly Twitter) using a relevance-based search.
- [ ] **SendMessage** - Sends a new direct message to a selected user.
- [ ] **UpdateProfileImage** - Updates your profile image.
- [ ] **UploadMedia** - Uploads a new media file for posting and returns media IDs.
- [ ] **WatchMentions** - Triggers when a user being watched is mentioned in a post.
- [ ] **WatchMessages** - Triggers when a new message is received.
- [ ] **WatchNewLikes** - Triggers when you or a specified user likes a post for the first time.
- [ ] **WatchPosts** - Triggers when a new post is posted by you or a specified user.
- [ ] **WatchPostsInList** - Triggers when a new post is created in a specific list.
- [ ] **WatchReposts** - Triggers when someone reposts a post from a user being watched.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [Twitter API Docs](https://developer.twitter.com/en/docs)
- 🛠️ [Twitter Developer Resources](https://developer.twitter.com/)

## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via OAuth 2.0.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the standard structure used for Elsa integrations and the CONTRIBUTING.md guide, then review the Twitter API documentation and OAuth 2.0 requirements. The module is complete when all listed workflow activities are implemented in Elsa.Integrations.Twitter, with unit tests and a README.md covering the integration.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.