问答
公众号的原始 ID(gh_ 开头)是什么?
简短回答
它是账号永久不变的内部名称:gh_ 后面跟一串十六进制字符,通常 12 位,比如 gh_7a41c09e2b5d,注册时生成,之后不能改。它不像微信号那样可以修改,也不像 AppID 那样是开发者凭证。okdata 的公众号搜索把它作为 id 返回(每个搜到的号 $0.058),历史文章接口用它列出文章,每页 $0.02。
每个公众号注册时都会拿到一个原始 ID:字母 gh_ 后面跟一串十六进制字符,通常是 12 位,比如 gh_7a41c09e2b5d。号主在 mp.weixin.qq.com 后台的账号设置里能看到它,在注册信息那一栏,写作“原始ID”。读者几乎看不到它,所以投放方案里列的一串公众号名称,没法直接导进监测工具:这些工具都以 gh_ ID 为主键,因为它是唯一永远不变的标识。名称可以改,微信号可以后设、可以改,原始 ID 却跟着账号一辈子。
四种账号标识
| 标识 | 长什么样 | 谁定的 | 会不会变 | 用在哪里 |
|---|---|---|---|---|
| 原始 ID | gh_7a41c09e2b5d |
微信,注册时生成 | 不会 | 监测工具、历史文章、第三方数据 |
| 微信号 | brand_news |
号主自己,可不设 | 可以后设 | 告诉别人怎么搜到这个号 |
| AppID | wx 开头 |
微信,给开发者的 | 不会 | 调用微信官方接口操作自己的号 |
__biz |
MzA5NTI3MjIwMA== |
微信 | 不会 | 文章和主页的网页链接,见 __biz 是什么 |
有两点要留意。gh_ 开头不代表一定是公众号:小程序也有同样 gh_ 格式的原始 ID,微信官方文档里网页跳转小程序时要填的就是小程序的 gh_ ID。另外,AppID 是你自己账号的开发凭证,不能拿来查别人的号。
接口怎么收、怎么返回
- 公众号搜索按名称或关键词找号,每个结果带
id(gh_ ID)、username(设置了的话是微信号)和name。按返回的账号数计费。 - 公众号历史文章用 gh_ ID 或微信号作为
id,从新到旧列出已发布的文章。它不认__biz。 - 文章详情对任意文章链接返回
author.id,也就是发文账号的 gh_ ID。
| 任务 | 调用次数 | 费用 |
|---|---|---|
| 名称换 gh_ ID | 1 | 每个返回的号 $0.058,最多 $0.58 |
| 一条文章链接换发文账号的 gh_ ID | 1 | $0.02 |
| 某个 gh_ ID 最新 10 篇文章 | 1 | $0.02 |
示例
curl -G "https://api.okdata.online/v1/wechat_mp/accounts/articles/list" \
-H "Authorization: Bearer $OKDATA_API_KEY" \
--data-urlencode 'id=gh_7a41c09e2b5d' \
--data-urlencode 'fields=id,title,published_at,url'
限制
- 做过账号迁移的公众号,迁移后原始 ID 会变成新号的。存着的 gh_ ID 突然拉不到新文章,就按名称重新搜一次。
- 常见名称可能搜出好几个长得像的号,存 ID 之前先核对
name。 - 把一批名称换成 gh_ ID,或者免费从文章网页源码里找,见查公众号的 biz 和原始 ID;整号导出见导出公众号全部文章。
资料来源
- WeChat open tags (微信开放文档): appid is the ID starting with wx, username the original ID starting with gh_
- Feed request listing an account's name, gh_ ID and biz together (feeddd/feeds issue #3438)
这个问题出现过的地方(读取于 2026-11-12)
更新于