enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (Avg merge 3h 2m) (10 merged PRs in 30d)
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