enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (PR metrics pending)
Description
Description
Add Reddit integration to sync subreddit posts, comments, user activity, and community data into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/slack/- Similar social/messaging platform integrationintegrations/discord/- Community platform integrationintegrations/linkedin/- Social platform integration
Required Files Structure
integrations/reddit/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Reddit API utilities
│ ├── account-create.ts # OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Reddit API Integration
OAuth Setup
- Use OAuth 2.0
- All clients must authenticate with a registered OAuth token
- Authorization URL:
https://www.reddit.com/api/v1/authorize - Token URL:
https://www.reddit.com/api/v1/access_token - Required scopes:
read,history,identity,mysubreddits,subscribe - Base URL:
https://oauth.reddit.com(authenticated requests)
Key Endpoints
GET /r/{subreddit}/hot- Hot posts in a subredditGET /r/{subreddit}/new- New posts in a subredditGET /r/{subreddit}/top- Top posts in a subredditGET /r/{subreddit}/comments/{article}- Comments on a postGET /api/v1/me- Current user identityGET /user/{username}/overview- User's posts and commentsGET /subreddits/mine/subscriber- User's subscribed subredditsGET /r/{subreddit}/search- Search within a subredditGET /r/{subreddit}/about- Subreddit informationGET /message/inbox- Private messages
Events to Track
- Posts - New submissions, post updates, upvotes/downvotes
- Comments - New comments, replies, comment threads
- Subreddits - Subscribed subreddits, subreddit activity
- Messages - Private messages, modmail
- User Activity - User posts, comments, karma changes
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 flow in
account-create.ts - Create API utilities in
utils.tswith Reddit API client - Implement sync logic in
schedule.tsfor posts, comments, subreddits - Convert Reddit data to CORE activity format
- Add error handling and rate limiting (60 requests/minute)
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- REST API with JSON responses
- OAuth 2.0 required for all authenticated requests
- Rate limit: 60 requests per minute per OAuth client ID
- Must set a custom
User-Agentheader identifying your app - Pagination uses
afterandbeforefullname-based cursors - Reddit API Terms and Data API Terms updated June 2023
- API access now requires registration and may involve costs
- Listing endpoints return max 100 items per request
- Use
raw_json=1parameter to get unescaped JSON
Resources
Labels
enhancement, integration, new-feature