microapp

package module
v0.0.0-...-8077ce6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

README

fastwego/microapp

A fast microapp development sdk written in Golang

GoDoc Go Report Card

快速开始 & demo

go get github.com/jackluo2012/microapp
// 创建字节小程序实例
app := microapp.New(microapp.Config{
    AppId:     viper.GetString("APPID"),
    AppSecret: viper.GetString("SECRET"),
})
 
// 调用 api
payload := []byte(`{
  "tasks": [
    {
      "content": "要检测的文本"
    }
  ]
}`)
resp, err := content_security.TextAntiDirty(app, payload)
fmt.Println(string(resp), err)

完整演示项目:

https://github.com/jackluo2012/microapp-demo

接口列表:

框架特点

快速

「快」作为框架设计的核心理念,体现在方方面面:

  • 使用 Go 语言,开发快、编译快、部署快、运行快,轻松服务海量用户
  • 丰富的文档演示代码 ,快速上手,5 分钟即可搭建一套完整的字节小程序服务
  • 独立清晰的模块划分,快速熟悉整个框架,没有意外,一切都是你期望的样子
  • 甚至连框架自身的大部分代码也是自动生成的,维护更新快到超乎想象
符合直觉

作为第三方开发框架,尽可能贴合官方文档和设计,不引入新的概念,不给开发者添加学习负担

官方文档就是最好的文档

每个接口的注释都附带官方文档的链接,让你随时翻阅,省时省心

完备的单元测试

100% 覆盖每一个接口,让你每一次调用都信心满满

详细的日志

每个关键环节都为你完整记录,Debug 倍轻松,你可以自由定义日志输出,甚至可以关闭日志

支持服务集群

单台服务器支撑不住访问流量/想提高服务可用性?

只需 设置 GetAccessTokenFunc 方法 ,从中控服务获取 AccessToken,即可解决多实例刷新冲突/覆盖的问题

活跃的开发者社区

FastWeGo 是一套完整的 Go 开发框架,包括支持微信、飞书、钉钉、字节小程序服务,拥有庞大的开发者用户群体

你遇到的所有问题几乎都可以在社区找到解决方案

参与贡献

欢迎提交 pr/issue 或者 文档,一起让 Go 开发更快更好!

Faster we go together!

加入开发者交流群

Documentation

Overview

字节小程序开发 SDK

See: https://microapp.bytedance.com/

Index

Constants

This section is empty.

Variables

View Source
var (
	ServerUrl              = "https://open-sandbox.douyin.com" //"https://developer.toutiao.com" //  api 服务器地址
	UserAgent              = "jackluo2012/microapp"
	ErrorAccessTokenExpire = errors.New("access token expire")
	ErrorSystemBusy        = errors.New("system busy")
)

Functions

func GetAccessToken

func GetAccessToken(ctx *MicroApp) (accessToken string, err error)

从 公众号实例 的 AccessToken 管理器 获取 access_token

如果没有 access_token 或者 已过期,那么刷新

获得新的 access_token 后 过期时间设置为 0.9 * expiresIn 提供一定冗余

func NoticeAccessTokenExpire

func NoticeAccessTokenExpire(ctx *MicroApp) (err error)

NoticeAccessTokenExpire 只需将本地存储的 access_token 删除,即完成了 access_token 已过期的 主动通知

retry 请求的时候,会发现本地没有 access_token ,从而触发refresh

Types

type Client

type Client struct {
	Ctx *MicroApp
}

HttpClient 用于向接口发送请求

func (*Client) HTTPDo

func (client *Client) HTTPDo(req *http.Request) (resp []byte, err error)

HTTPDo 执行 请求

func (*Client) HTTPGet

func (client *Client) HTTPGet(uri string) (resp []byte, err error)

HTTPGet GET 请求

func (*Client) HTTPPost

func (client *Client) HTTPPost(uri string, payload io.Reader, contentType string) (resp []byte, err error)

HTTPPost POST 请求

type Config

type Config struct {
	AppId     string
	AppSecret string
}

小程序配置

type Error

type Error struct {
	Code int64  `json:"errcode"`
	Msg  string `json:"errmsg"`
}

type GetAccessTokenFunc

type GetAccessTokenFunc func(ctx *MicroApp) (accessToken string, err error)

GetAccessTokenFunc 获取 access_token 方法接口

type MicroApp

type MicroApp struct {
	Config                         Config
	Client                         Client
	Logger                         *log.Logger
	Cache                          cachego.Cache
	GetAccessTokenHandler          GetAccessTokenFunc
	NoticeAccessTokenExpireHandler NoticeAccessTokenExpireFunc
}

MicroApp 实例

func New

func New(config Config) (microapp *MicroApp)

创建小程序实例

type NoticeAccessTokenExpireFunc

type NoticeAccessTokenExpireFunc func(ctx *MicroApp) (err error)

NoticeAccessTokenExpireFunc 通知中控 刷新 access_token

Directories

Path Synopsis
apis
auth
Package auth 登录
Package auth 登录
content_security
Package content_security 内容安全
Package content_security 内容安全
data_caching
Package data_caching 数据缓存
Package data_caching 数据缓存
qrcode
Package qrcode 二维码
Package qrcode 二维码
subscribe_notification
Package subscribe_notification 订阅消息
Package subscribe_notification 订阅消息
template_message
Package template_message 模板消息
Package template_message 模板消息
Package test 模拟服务器 测试
Package test 模拟服务器 测试

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL