Giter Club home page Giter Club logo

wechat-server's Introduction

微信公众号服务器

用以微信公众号的后端,提供登录验证功能

功能

  • Access Token 自动刷新 & 提供外部访问接口
  • 自定义菜单(需要你的公众号有这个权限)
  • 登录验证
  • 自定义回复

展示

demo1 demo2

部署

手动部署

  1. GitHub Releases 下载可执行文件或者从源码编译:
    git clone https://github.com/songquanpeng/wechat-server.git
    go mod download
    go build -ldflags "-s -w" -o wechat-server
  2. 运行:
    chmod u+x wechat-server
    ./wechat-server --port 3000 --log-dir ./logs
  3. 访问 http://localhost:3000/ 并登录。初始账号用户名为 root,密码为 123456

更加详细的部署教程参见此处

基于 Docker 进行部署

执行:docker run -d --restart always -p 3000:3000 -v /home/ubuntu/data/wechat-server:/data justsong/wechat-server

数据将会保存在宿主机的 /home/ubuntu/data/wechat-server 目录。

配置

  1. GitHub Releases 下载可执行文件。
  2. 系统本身开箱即用,有一些环境变量可供配置:
    1. REDIS_CONN_STRING: 设置之后,将启用 Redis。
      • 例如:REDIS_CONN_STRING=redis://default:redispw@localhost:49153
    2. SESSION_SECRET:设置之后,将使用给定会话密钥。
      • 例如:SESSION_SECRET=random_string
    3. SQL_DSN: 设置之后,将使用目标数据库而非 SQLite。
      • 例如:SQL_DSN=root:123456@tcp(localhost:3306)/gofile
  3. 运行:
    1. chmod u+x wechat-server
    2. ./wechat-server --port 3000
  4. 初始账户用户名为 root,密码为 123456,记得登录后立刻修改密码。
  5. 前往微信公众号配置页面 -> 设置与开发 -> 基本配置获取 AppID 和 AppSecret,并在我们的配置页面填入上述信息,另外还需要配置 IP 白名单,按照页面上的提示完成即可。
  6. 前往微信公众号配置页面 -> 设置与开发 -> 基本配置填写以下配置:
    1. URL 填:https://<your.domain>/api/wechat
    2. Token 首先在我们的配置页面随便填写一个 Token,然后在微信公众号的配置页面填入同一个 Token 即可。
    3. EncodingAESKey 点随机生成,然后在我们的配置页面填入该值。
    4. 消息加解密方式选择明文模式。
  7. 之后保存设置并启用设置。
  8. 当前版本需要重启服务才能应用配置信息,因此请重启服务。

API

获取 Access Token

  1. 请求方法:GET
  2. URL:/api/wechat/access_token
  3. 无参数,但是需要设置 HTTP 头部:Authorization: <token>

通过验证码查询用户 ID

  1. 请求方法:GET
  2. URL:/api/wechat/user?code=<code>
  3. 需要设置 HTTP 头部:Authorization: <token>

注意

需要将 <token><code> 替换为实际的内容。

wechat-server's People

Contributors

dependabot[bot] avatar songquanpeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wechat-server's Issues

获取用户信息中的code是什么?

请求方法:GET
URL:/api/wechat/user?code=<code>
需要设置 HTTP 头部:Authorization: <token>

需要将 <token> 和 <code> 替换为实际的内容。

这里的code是什么?

两个问题

1 开始注册后可以无限发验证码 应该每个人限制几次 超过要一分钟这样
2.除非code空success 才false 不然对错过期全是true只能判断data

可以和WordPress集成不?做个插件呗

如题,如果能在WordPress上插件载入后,不再需要自己的注册系统,直接用此项目进行登录,是个非常不错的方式。
不懂如何集成,看看能否提供方法或插件。谢谢。

初始密码无法更改

image

服务部署后,第一个事情是修改超级管理员账户密码,但是看起来不能修改。

添加公众号菜单失败

已经在后台配置好token、appid、appscecret、EncodingAESKey,但是点击更新公众菜单报错:
api unauthorized rid: 638f9019-32b25e9f-252ee1bd

公众号已经可以获取到验证码,使用的是微信测试号,是有自定义菜单的权限的。

早上再试的时候报错错误:invalid credential, access_token is invalid or not latest rid: 638fd247-54ce3046-6b34e683

我不理解

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.