Fetch one Weibo post's full detail plus up to 10 pages of comments (~150 total) with cursor-based pagination. Pass numeric postId (+ optional mid) from upstream feeds.
The run can no longer be killed by the key-value store. Under
LIMITED_PERMISSIONS — how Apify's automated QA and every API-triggered run
starts an Actor — opening the store is refused with HTTP 403
(KeyValueStoreCollectionClient.getOrCreate, path /v2/key-value-stores).
That call sat in a || fallback chain and was never inside a try/catch of
ours, so the throw ended the run with exit code 91 and a reported FAILED run
with zero items. Every store open now goes through a wrapper that returns a
no-op store instead of throwing, so the free-run counter and the run SUMMARY
degrade and the actual work proceeds.
The gate store's name-to-id lookup no longer depends on the store still being
on the first page. There is no GET-by-name endpoint, so the lookup pages
through /v2/key-value-stores; it used a fixed limit=50, which silently
stopped containing gate stores once the account passed 50 of them — and the
account creates a new default store on every run, so that list grows on its
own. The lookup now pages (100 per page, up to 20 pages).
CHANGELOG — Weibo Post Detail Scraper
0.1.3 - 2026-08-21
Rebrand (no API change): rename internal client to UpstreamClient; env vars TIKHUB_API_KEY / TIKHUB_BASE_URL → UPSTREAM_API_KEY / UPSTREAM_BASE_URL; file src/tikhub_client.js → src/upstream_client.js. Per our internal SOP §100 (no upstream name in user-facing surfaces), existing 0.1.2 runs keep working until the next push.
Fix (bonus): test/integration.js was the hot-search template (called fetchTrendTop + intervalSeconds); replaced with two post-detail-specific tests covering fetchPostDetail (single post object) and fetchPostComments (first page). 7/7 unit + 2/2 integration tests PASS.