Wordpress OAuth
v1.0.0Start and complete WordPress.com OAuth and publish posts through the WordPress.com REST API. Use when you need to generate an authorization URL, exchange cal...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
WordPress OAuth Skill
Use this skill to run a human-in-the-loop OAuth flow and publish posts with a stored bearer token.
Files in this skill
- Script:
{baseDir}/wp_oauth_skill.py - OAuth state store:
{baseDir}/oauth_state.json - Credential store:
{baseDir}/credentials.json
This skill stores state and credentials in files inside this skill directory.
Commands
Run the script with Python 3:
python3 {baseDir}/wp_oauth_skill.py --help
1) Begin OAuth
python3 {baseDir}/wp_oauth_skill.py begin-oauth \
--client-id "$WPCOM_CLIENT_ID" \
--redirect-uri "$WPCOM_REDIRECT_URI" \
--scope "posts media" \
--blog "$WPCOM_SITE"
Returns auth_url and state. Open the URL, approve access, then copy the callback URL.
2) Exchange Token
python3 {baseDir}/wp_oauth_skill.py exchange-token \
--client-id "$WPCOM_CLIENT_ID" \
--client-secret "$WPCOM_CLIENT_SECRET" \
--redirect-uri "$WPCOM_REDIRECT_URI" \
--callback-url "https://example/callback?code=...&state=..."
Validates CSRF state, exchanges code for token, and writes credentials to {baseDir}/credentials.json.
3) Token Info
python3 {baseDir}/wp_oauth_skill.py token-info --client-id "$WPCOM_CLIENT_ID"
Checks token validity with WordPress token-info endpoint.
4) Publish Post
python3 {baseDir}/wp_oauth_skill.py publish-post \
--site "$WPCOM_SITE" \
--title "My post" \
--content "<p>Hello from OpenClaw</p>" \
--status draft
Publishes a post via POST /rest/v1.1/sites/$site/posts/new using the stored token.
Recommended flow
- Run
begin-oauth. - Open
auth_urlin browser and authorize. - Paste callback URL into
exchange-token. - Optionally run
token-info. - Run
publish-post.
Security notes
- Never share
credentials.jsonor client secrets. - Keep first test posts as
draft. - Re-run
begin-oauthif callback state fails or auth code expires.
Files
2 totalComments
Loading comments…
