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 |
Callback URL
https://api.tendsocial.com/api/social/accounts/callback/redditEnvironment Variables
bash
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
Dynamic App Registration
For each new instance, TendSocial:
- POSTs to
https://{instance}/api/v1/apps - Receives
client_idandclient_secret - Stores credentials for that instance
- Redirects user to instance OAuth
Required Scopes
| Scope | Purpose |
|---|---|
read | Read account info |
write | Post toots |
push | Receive notifications (optional) |
Callback URL
https://api.tendsocial.com/api/social/accounts/callback/mastodonEnvironment Variables
Mastodon credentials are per-instance, stored in database per connection.
Optional default instance:
bash
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.