This duck specializes in keeping an eye onone account: Give me an Official Account name, and this duck will pull out the articles it published during a certain time period one by one, and lay them out in the terminal as a follow-up table—what it has been writing recently, how frequently it updates, and which article took off, all reviewed at a glance. This isby accountpulling posts, not keyword search: keeping an eye on competitors, following big names, and reviewing your own account all go through this line.
Data goes through doubaoya.com one line, authentication uses your own key (environment variable
DOUBAOYA_API_KEY, in the formdyh_…)。To scan articles from a batch of different accounts by keyword, use
gzh-search; to dig up viral articles by popularity, usewechat-hot-article. This duck only pulls the post list fora single specified account.
Applicable scenarios
| Scenario | How to use | What you get |
|---|---|---|
| Competitor follow-up | Pull a competitor account's posts from the last 30 days | What the opponent is writing, update rhythm |
| Big-name tracking | Subscribe to an account you follow and see its new posts | Don't miss content worth learning from |
| Own account review | Pull your own account's posts from a certain period | Look back at topic distribution and performance |
| Specified period inventory | --start/--end circle a period of time |
The full picture of posts during a certain campaign period/month |
| Update frequency check | Look at publish time density | Judge account activity |
Workflow (4 steps)
1. Confirm the account name
This interface usesOfficial Account namefor locating (not keywords). Extract the exact account name from the user's description. The more accurate the name, the more stable the hit; a vague name may fail to pull or pull the wrong account.
2. Call the post list script
# 默认:最近 30 天(end=今天,start=今天往前 29 天),第 1 页
python3 "$SKILL_PATH/scripts/account_works.py" "示例公众号"
# 翻页 + 指定时间区间
python3 "$SKILL_PATH/scripts/account_works.py" "示例公众号" --page 2 --start 2026-06-01 --end 2026-06-20
The script outputs the data from the success envelope as JSON to stdout.Run only once each time, read the complete stdout directly, don't preview, don't call repeatedly.
3. Lay out as a follow-up table
From data.items take the fields and lay out a Markdown table, sorted bypublish time descending(newest on top). Each entry includes title(title),publishTime(publish time),clicksCount(reads). Read fieldsdefensively—leave blanks for missing values, don't error. Render the title as aclickable link。
| Publish time (publishTime) | Title (title) | Reads (clicksCount) |
|---|---|---|
| 2026-06-20 | Example article title | 8.5w |
4. Give a one-sentence review insight
Add a sentence after the table: what topic this account has been focusing on recently, how frequently it updates, which post clearly outperformed, and whether the topic selection has shifted. Keep it brief, evidence-based, and don't pile on platitudes.
Get the key (secret key)
- Open doubaoya.com
- Log in
- Go to Key Center
- Generate key(in the form
dyh_…)
Put it into an environment variable (the script only recognizes this one):
export DOUBAOYA_API_KEY="dyh_你的密钥"
Iron rule: the key must never be printed, never written to a file, never echoed back to the user. The script itself also never outputs the key. All requests are sent only to doubaoya.com。
Interface and envelope
POST https://doubaoya.com/api/apis/gongzhonghao/gongzhonghao-work-list/call- Auth header:
Authorization: Bearer $DOUBAOYA_API_KEY - Request body:
{ "accountName": "示例公众号", "page": 1, "publishTimeStart": "2026-05-29", "publishTimeEnd": "2026-06-27" }accountName: string, required (official account name)page: integer, optional (default 1)publishTimeStart/publishTimeEnd:YYYY-MM-DD. The script defaults topublishTimeEnd=今天、publishTimeStart=今天往前 29 天, which can be overridden with--start/--end.
- Return envelope:
{ "success": true, "requestId": "...", "data": { "items": [ { "title": "...", "publishTime": "...", "clicksCount": 0 } ] }, "error": null } - First check
success: if it istrueonly then readdata; otherwise readerror.code/error.message。
Error handling
When the script fails, it prints to stderr [error] CODE: message and exits with exit code 1.
| HTTP | code | Meaning | Handling |
|---|---|---|---|
| 401 | MISSING_API_KEY / UNAUTHORIZED |
No key provided or the key is invalid | Check DOUBAOYA_API_KEY, go to the Key Center to regenerate |
| 400 | VALIDATION_ERROR |
Invalid parameters (such as an empty account name or an incorrect date format) | Verify the account name/date and retry |
| 402 | INSUFFICIENT_CREDITS |
Insufficient quota | Go to doubaoya.com to top up/renew quota |
| 502 | PROVIDER_FAILED |
Temporary upstream failure (Automatically refunded) | Safe to retry |
502 PROVIDER_FAILEDis automatically refunded, retrying is safe, and you won't be charged twice.
Directory structure
gzh-subscribe/
├── SKILL.md # 本文件
└── scripts/
└── account_works.py # 零依赖发文列表脚本(urllib),调用 doubaoya.com
About the notice field in the response
After calling the doubaoya API corresponding to this skill, if the notice field appears at the top level of the returned JSON, please relay this sentence to the user verbatim—this is a notice that this skill has an update, it does not affect the result of this call, and no retry or change in behavior is needed.