{"id":13602445,"url":"https://github.com/node-webot/wechat-api","last_synced_at":"2025-04-13T19:25:33.963Z","repository":{"id":22910947,"uuid":"26259710","full_name":"node-webot/wechat-api","owner":"node-webot","description":"Wechat API / 主动调用 API","archived":false,"fork":false,"pushed_at":"2021-12-28T16:14:03.000Z","size":3184,"stargazers_count":1637,"open_issues_count":26,"forks_count":327,"subscribers_count":86,"default_branch":"master","last_synced_at":"2025-04-06T17:03:36.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/node-webot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-06T07:54:31.000Z","updated_at":"2025-03-15T08:03:29.000Z","dependencies_parsed_at":"2022-07-27T03:47:08.228Z","dependency_job_id":null,"html_url":"https://github.com/node-webot/wechat-api","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-webot%2Fwechat-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-webot%2Fwechat-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-webot%2Fwechat-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-webot%2Fwechat-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/node-webot","download_url":"https://codeload.github.com/node-webot/wechat-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248766901,"owners_count":21158346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T18:01:23.528Z","updated_at":"2025-04-13T19:25:33.941Z","avatar_url":"https://github.com/node-webot.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"Wechat API\n===========\n微信公共平台API。\n\n## 模块状态\n- [![NPM version](https://badge.fury.io/js/wechat-api.png)](http://badge.fury.io/js/wechat)\n- [![Build Status](https://travis-ci.org/node-webot/wechat-api.png?branch=master)](https://travis-ci.org/node-webot/wechat-api)\n- [![Dependencies Status](https://david-dm.org/node-webot/wechat-api.png)](https://david-dm.org/node-webot/wechat-api)\n- [![Coverage Status](https://coveralls.io/repos/node-webot/wechat-api/badge.png)](https://coveralls.io/r/node-webot/wechat-api)\n\n## 功能列表\n- 发送客服消息（文本、图片、语音、视频、音乐、图文）\n- 菜单操作（查询、创建、删除）\n- 二维码（创建临时、永久二维码，查看二维码URL）\n- 分组操作（查询、创建、修改、移动用户到分组）\n- 用户信息（查询用户基本信息、获取关注者列表）\n- 媒体文件（上传、获取）\n- 群发消息（文本、图片、语音、视频、图文）\n- 客服记录（查询客服记录，查看客服、查看在线客服）\n- 群发消息\n- 公众号支付（发货通知、订单查询）\n- 微信小店（商品管理、库存管理、邮费模板管理、分组管理、货架管理、订单管理、功能接口）\n- 模版消息\n- 网址缩短\n- 语义查询\n- 数据分析\n- JSSDK服务端支持\n- 素材管理\n- 摇一摇周边\n\n详细参见[API文档](http://doxmate.cool/node-webot/wechat-api/api.html)\n\n企业版本请前往：\u003chttps://github.com/node-webot/wechat-enterprise\u003e\n\n## Installation\n\n```sh\n$ npm install wechat-api\n```\n\n## Usage\n\n```js\nvar WechatAPI = require('wechat-api');\n\nvar api = new WechatAPI(appid, appsecret);\napi.updateRemark('open_id', 'remarked', function (err, data, res) {\n  // TODO\n});\n```\n\n### patch()扩展\n\n当微信官方文档已更新，但本库未来得及更新，而又想用新的微信 api 时，可调用 patch 方法来扩展新功能。\n```js\nvar WechatAPI = require('wechat-api');\nvar api = new WechatAPI(appid, appsecret);\n\n// 扩展新api : updateInfo\n// 第一个参数为扩展的新方法名，第二个参数为此 api 调用的微信的 apiurl 地址，会自动加上 token\nWechatAPI.patch(\"updateInfo\", \"https://api.weixin.qq.com/card/membercard/updateuser\");\n\n\n// 调用刚扩展的方法，与其它 api 接口方法一样。\napi.updateInfo(jsonInfo, function (err, data, res) {\n  // TODO\n});\n```\n#### 覆盖已有的接口\n当要扩展的新接口名称已在 API 内定义，会抛出异常：\n`wechat-api already has a prototype named [uploadLogo]`\n如果知道这个异常的含义且依然想定义这个接口名称，应该给第三个参数传入`true`:\n```js\nWechatAPI.patch(\"uploadLogo\", \"https://api.weixin.qq.com/card/membercard/updateuser\", true);\n```\n执行后控制台会输出警告，并覆盖原来`uploadLogo`这个接口。\n\n\u003e **提示** 当有新的微信接口开放或发现有用但 wechat-api 尚未加入开发的接口时，请在本库中相应的 js 文件中增加对新接口定义并提交 PullRequest 以便大家都能使用这个新接口。如果没有开发能力，请提交 issue. \n\n\u003e **警告** 这个覆盖不只会覆盖 api 中的微信接口，所有定义给 api 的方法/成员变量 等都有可能被覆盖，请谨慎请用\n\n### 多进程\n当多进程时，token需要全局维护，以下为保存token的接口。\n```\nvar WechatAPI = require('wechat-api');\nvar api = new WechatAPI('appid', 'secret', function (callback) {\n  // 传入一个获取全局token的方法\n  fs.readFile('access_token.txt', 'utf8', function (err, txt) {\n    if (err) {return callback(err);}\n    callback(null, JSON.parse(txt));\n  });\n}, function (token, callback) {\n  // 请将token存储到全局，跨进程、跨机器级别的全局，比如写到数据库、redis等\n  // 这样才能在cluster模式及多机情况下使用，以下为写入到文件的示例\n  fs.writeFile('access_token.txt', JSON.stringify(token), callback);\n});\n```\n\n## Show cases\n### Node.js API自动回复\n\n![Node.js API自动回复机器人](http://nodeapi.diveintonode.org/assets/qrcode.jpg)\n\n欢迎关注。\n\n代码：\u003chttps://github.com/JacksonTian/api-doc-service\u003e\n\n你可以在[CloudFoundry](http://www.cloudfoundry.com/)、[appfog](https://www.appfog.com/)、[BAE](http://developer.baidu.com/wiki/index.php?title=docs/cplat/rt/node.js)等搭建自己的机器人。\n\n## 详细API\n原始API文档请参见：[消息接口指南](http://mp.weixin.qq.com/wiki/index.php?title=消息接口指南)。\n\n\n## License\nThe MIT license.\n\n## 交流群\nQQ群：157964097，使用疑问，开发，贡献代码请加群。\n\n## 感谢\n感谢以下贡献者：\n\n```\n\n project  : wechat-api\n repo age : 1 year, 9 months\n active   : 97 days\n commits  : 211\n files    : 72\n authors  :\n   136  Jackson Tian       64.5%\n    10  tedyyu             4.7%\n     9  greenkeeperio-bot  4.3%\n     7  Limjoe             3.3%\n     6  Guan Bo            2.8%\n     5  SunLn              2.4%\n     4  shuhankuang        1.9%\n     4  Lou                 Lin   1.9%\n     3  minxianlong        1.4%\n     2  Colt Xie           0.9%\n     2  xuming314          0.9%\n     1  brucewar           0.5%\n     1  dan                0.5%\n     1  ifeiteng           0.5%\n     1  kai_hao            0.5%\n     1  liuxiaodong        0.5%\n     1  looping            0.5%\n     1  simonyan           0.5%\n     1  wuxq               0.5%\n     1  wxhuang            0.5%\n     1  xumian.wei         0.5%\n     1  yelo               0.5%\n     1  BeeSui             0.5%\n     1  yuyuan             0.5%\n     1  Eric               0.5%\n     1  Ezios              0.5%\n     1  JaydanHuang        0.5%\n     1  Lin@Cloud+         0.5%\n     1  Monson Shao        0.5%\n     1  Qun Lin            0.5%\n     1  Silver Lao         0.5%\n     1  Table              0.5%\n     1  Wang Yitong        0.5%\n     1  Will               0.5%\n\n```\n\n## 捐赠\n如果您觉得Wechat对您有帮助，欢迎请作者一杯咖啡\n\n![捐赠wechat](https://cloud.githubusercontent.com/assets/327019/2941591/2b9e5e58-d9a7-11e3-9e80-c25aba0a48a1.png)\n\n或者[![](http://img.shields.io/gratipay/JacksonTian.svg)](https://www.gittip.com/JacksonTian/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnode-webot%2Fwechat-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnode-webot%2Fwechat-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnode-webot%2Fwechat-api/lists"}