Other Platforms Setup
Configuration guides for Reddit, Mastodon, and Bluesky.
Reddit
Prerequisites
- Reddit account
- Created Reddit app (script or web app type)
Create Reddit App
- Go to Reddit App Preferences
- Click Create App or Create Another App
- Select web app type
- Set redirect URI to your callback URL
- Note the client ID (under app name) and client secret
Required Scopes
| Scope | Purpose |
|---|---|
identity | Read username |
read | Read posts/comments |
submit | Submit posts |
edit | Edit own posts |
save | Save/unsave posts when using saved-content workflows |
Callback URL
https://api.tendsocial.com/api/company/social-accounts/callback/REDDITEnvironment Variables
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secretPlatform Limitations
| Feature | Status |
|---|---|
| Text posts | ✅ Supported |
| Link posts | ✅ Supported |
| Image posts | ✅ Supported |
| Video posts | ✅ Supported |
| Cross-posting | ❌ Not available via API |
| Polls | ❌ Not available via API |
| Comments | ✅ Read/write supported |
| Karma requirements | ⚠️ Some subreddits require minimum karma |
Mastodon
Authentication Method
Mastodon is federated, meaning each instance has separate OAuth:
- User provides their instance URL (e.g.,
mastodon.social) - TendSocial registers as an app on that instance (dynamically)
- User authorizes through their instance
Current Implementation
Users enter their Mastodon instance before OAuth. TendSocial carries that instance through OAuth state and stores it in account metadata for publishing. The launch flow uses configured client credentials for the selected instance; do not promise automatic dynamic app registration for every Mastodon instance until per-instance client registration is implemented and verified end to end.
Required Scopes
| Scope | Purpose |
|---|---|
read | Read account info |
write | Post toots |
follow | Follow, boost, and favorite workflows |
push | Receive notifications (future optional scope) |
Callback URL
https://api.tendsocial.com/api/company/social-accounts/callback/MASTODONEnvironment Variables
Mastodon credentials are per-instance, stored in database per connection.
Optional default instance:
MASTODON_CLIENT_ID=your_client_id
MASTODON_CLIENT_SECRET=your_client_secret
MASTODON_INSTANCE_URL=mastodon.socialPlatform Limitations
| Feature | Status |
|---|---|
| Text posts (toots) | ✅ 500 chars (instance-dependent) |
| Images | ✅ Up to 4 |
| Videos | ✅ Supported |
| Polls | ✅ Supported |
| Content warnings | ✅ Supported |
| Visibility | ✅ Public/unlisted/private/direct |
| Boosting (retoots) | ✅ Supported |
| Threads | ✅ Supported |
Bluesky
Authentication Method
Bluesky uses App Passwords (not OAuth):
- Go to Bluesky Settings
- Click Add App Password
- Name it (e.g., "TendSocial")
- Copy the generated password
IMPORTANT
Bluesky does not support OAuth. Users provide their handle and app password directly.
API Endpoint
https://bsky.social/xrpc/Or the user's PDS if self-hosted:
https://{user-pds}/xrpc/Required Credentials
| Credential | Format |
|---|---|
| Handle | username.bsky.social or custom domain |
| App Password | Generated app-specific password |
Environment Variables
Bluesky credentials are per-user, stored in database.
No global environment variables needed.
Platform Limitations
| Feature | Status |
|---|---|
| Text posts | ✅ 300 chars (graphemes) |
| Images | ✅ Up to 4 |
| Videos | ✅ Supported |
| Link cards | ✅ Auto-generated |
| Quote posts | ✅ Supported |
| Replies | ✅ Supported |
| Likes | ✅ Supported |
| Reposts | ✅ Supported |
| Lists | ✅ Supported |
| Feeds | ⚠️ Requires custom feed generator |
Character Counting
Bluesky counts graphemes, not bytes or characters:
- Emoji = 1 grapheme (regardless of modifiers)
- Links are counted at full length
- Mentions/hashtags counted at full length
TendSocial handles grapheme counting automatically.