node-wxcli
v0.1.0
Published
Node.js CLI for Weixin Official Account draftbox/material operations.
Readme
node-wxcli
Node.js CLI for Weixin Official Account (公众号) draftbox and permanent material operations.
Features
- Auth:
set/login/status/clear/keyring - Config:
path - Draftbox:
add/get/list/delete - Material:
get/list/delete/count/upload/add-news/update-news - Output modes: default human,
--json,--plain - Markdown rendering + CSS inlining for
draft add --format markdown
Install
npm install -g node-wxcli
node-wxcli --helpOr use with npx:
npx --yes node-wxcli --helpRun from local repo without publish:
npx --yes --package file:. node-wxcli --helpQuick Start
Set credentials:
node-wxcli auth set --appid YOUR_APPID --appsecret YOUR_APPSECRET
node-wxcli auth status --jsonCheck local config paths:
node-wxcli config pathDraftbox
Add a draft using HTML:
node-wxcli draft add \
--title "Hello" \
--content "<p>Hi</p>" \
--thumb-media-id MEDIA_IDAdd a draft using Markdown from stdin:
cat article.md | node-wxcli draft add \
--title "Hello" \
--content - \
--format markdown \
--css-path ./assets/style.css \
--thumb-media-id MEDIA_IDList/get/delete drafts:
node-wxcli draft list --offset 0 --count 10 --no-content 1 --json
node-wxcli draft get MEDIA_ID --json
node-wxcli draft delete MEDIA_IDMaterial
Count materials:
node-wxcli material count --jsonUpload material:
node-wxcli material upload --type image --file ./cover.png --json
node-wxcli material upload --type thumb --file ./cover.png --jsonNews material:
node-wxcli material add-news \
--title "Hello" \
--content "<p>Hi</p>" \
--thumb-media-id MEDIA_ID
node-wxcli material update-news MEDIA_ID \
--index 0 \
--title "Updated" \
--content "<p>Updated</p>" \
--thumb-media-id MEDIA_IDOutput Modes
- Default: human-readable
--json: machine-readable JSON--plain: key=value lines
Node-mode Storage
Defaults:
- macOS:
~/Library/Application Support/node-wxcli/ - Linux:
~/.config/node-wxcli/ - Windows:
%APPDATA%/node-wxcli/
Files:
config.json(appid/name/backend)secrets.json(appsecret/access_token)
Override base directory:
export NODE_WXCLI_CONFIG_DIR=/custom/pathEnvironment Variables
NODE_WXCLI_CONFIG_DIR: override Node-mode config directoryWXCLI_KEYRING_BACKEND:auto|keychain|fileLIVE_WXCLI_APPID: appid for live smoke testLIVE_WXCLI_APPSECRET: appsecret for live smoke testLIVE_WXCLI_BASE_URL: optional API base URL override for tests
Tests
npm run test:node
npm run test:node:live