You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# These should include the channel permissions needed for bot replies, chatter lookups, gifted-sub automation, cheer automation, and native channel point rewards.
Copy file name to clipboardExpand all lines: README.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ It runs on TanStack Start, Cloudflare Workers, D1, Durable Objects, Queues, KV,
31
31
32
32
- Twitch panel extension with playlist viewing, viewer request actions, and owner/moderator controls for play-now, reorder, remove, request-type changes, and other queue actions
- VIP token tracking with manual grants plus automatic rewards for new subs, shared resub messages, gifted subs, gift recipients, cheers, raids, and StreamElements tips
34
+
- VIP token tracking with manual grants plus automatic rewards for new subs, shared resub messages, gifted subs, gift recipients, cheers, app-owned channel point rewards, raids, and StreamElements tips
-`VITE_ALLOWED_HOSTS=` if you need extra Vite hostnames
113
113
-`VITE_TWITCH_EXTENSION_API_BASE_URL=` if you want the standalone extension build to call a different app origin
114
114
@@ -135,7 +135,9 @@ If you build the panel as a standalone Twitch extension artifact, set `VITE_TWIT
135
135
136
136
`ADMIN_TWITCH_USER_IDS` should contain the Twitch user ID for the admin account that is allowed to connect the shared bot account and access admin pages.
137
137
138
-
Broadcaster connections need `channel:bot`, `channel:read:subscriptions`, and `bits:read` in `TWITCH_SCOPES`. If the connected Twitch account is missing those permissions, reconnect Twitch from the app so bot replies and VIP token automation can use them.
138
+
Broadcaster connections need `channel:bot`, `channel:read:subscriptions`, `bits:read`, and `channel:manage:redemptions` in `TWITCH_SCOPES`. If the connected Twitch account is missing those permissions, reconnect Twitch from the app so bot replies, VIP token automation, and app-owned channel point rewards can use them.
139
+
140
+
App-owned channel point rewards also require a Twitch Affiliate or Partner channel. Twitch rejects custom reward create/update calls for channels that do not have channel points.
139
141
140
142
Sentry stays off locally unless you explicitly set a DSN:
141
143
@@ -568,7 +570,7 @@ gh secret set CLOUDFLARE_D1_DATABASE_ID
568
570
gh secret set CLOUDFLARE_SESSION_KV_ID
569
571
gh secret set APP_URL --body "https://your-app-host"
570
572
gh variable set TWITCH_BOT_USERNAME --body "your_bot_username"
For local development, `TWITCH_BOT_USERNAME` should usually be your dedicated test bot account. Production should keep its own bot username in deployed env or secrets. The app enforces that the connected bot login matches `TWITCH_BOT_USERNAME`, so changing bot accounts locally requires changing local `.env` first.
47
47
48
-
`TWITCH_SCOPES` belongs to the broadcaster login flow, not the bot login flow. It should include `channel:bot` so chat replies can use Twitch's bot badge path. If the connected broadcaster account is missing that permission, reconnect Twitch.
48
+
`TWITCH_SCOPES` belongs to the broadcaster login flow, not the bot login flow. It should include `channel:bot` so chat replies can use Twitch's bot badge path, plus `channel:read:subscriptions`, `bits:read`, and `channel:manage:redemptions` for VIP token automation and app-owned channel point rewards. If the connected broadcaster account is missing those permissions, reconnect Twitch.
49
+
50
+
App-owned channel point rewards only work on Twitch Affiliate or Partner channels. If you test this flow on a channel without channel points, Twitch rejects the reward API calls and request-bot leaves the rest of the bot active.
49
51
50
52
2. Make sure your Twitch developer application has both redirect URIs registered:
Copy file name to clipboardExpand all lines: docs/local-development.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -77,7 +77,9 @@ For local bot testing, set `TWITCH_BOT_USERNAME` in `.env` to your dedicated tes
77
77
78
78
Keep the production bot username only in production secrets or deployed env. Do not point local development at the production bot account unless you intentionally want local testing to use the live bot identity.
79
79
80
-
`TWITCH_SCOPES` applies to the broadcaster's main app login, not the shared bot login. It needs `channel:bot` so bot replies can use Twitch's bot badge path, and it needs `moderator:read:chatters` for the chatter-first VIP lookup flow.
80
+
`TWITCH_SCOPES` applies to the broadcaster's main app login, not the shared bot login. It needs `channel:bot` so bot replies can use Twitch's bot badge path, `moderator:read:chatters` for the chatter-first VIP lookup flow, `channel:read:subscriptions` and `bits:read` for VIP token automation, and `channel:manage:redemptions` for the native channel point reward flow.
81
+
82
+
If you want to test the native channel point reward flow locally, use a Twitch Affiliate or Partner channel. Twitch does not allow custom rewards on channels without channel points.
0 commit comments