Documentation ¶
Overview ¶
网页授权获取用户基本信息
Index ¶
Constants ¶
View Source
const ( Language_zh_CN = "zh_CN" // 简体中文 Language_zh_TW = "zh_TW" // 繁体中文 Language_en = "en" // 英文 )
View Source
const ( SexUnknown = 0 // 未知 SexMale = 1 // 男性 SexFemale = 2 // 女性 )
Variables ¶
View Source
var ErrNoHeadImage = errors.New("没有头像")
Functions ¶
Types ¶
type Client ¶
type Client struct { Config Config // TokenStorage, Token 两个字段正常情况下只用指定一个, 如果两个同时被指定了, 优先使用 TokenStorage; // Client 会自动将最新的 Token 更新到 Client.Token 字段, 不管 Token 字段一开始是否被指定!!! TokenStorage TokenStorage Token *Token HttpClient *http.Client // 如果 HttpClient == nil 则默认用 http.DefaultClient }
func (*Client) CheckAccessTokenValid ¶
检验授权凭证(access_token)是否有效.
type Config ¶
type Config interface { AuthCodeURL(state string, redirectURIExt url.Values) string // 请求用户授权的地址, 获取code; redirectURIExt 用于扩展回调地址的参数 ExchangeTokenURL(code string) string // 通过code换取access_token的地址 RefreshTokenURL(refreshToken string) string // 刷新access_token的地址 UserInfoURL(accessToken, openId, lang string) string // 获取用户信息的地址 }
type OAuth2Config ¶
type OAuth2Config struct { AppId string AppSecret string // 用户授权后跳转的目的地址 // 用户授权后跳转到 RedirectURI?code=CODE&state=STATE // 用户禁止授权跳转到 RedirectURI?state=STATE RedirectURI string // 应用授权作用域, snsapi_base, snsapi_userinfo Scopes []string }
func NewOAuth2Config ¶
func NewOAuth2Config(AppId, AppSecret, RedirectURI string, Scope ...string) *OAuth2Config
func (*OAuth2Config) AuthCodeURL ¶
func (cfg *OAuth2Config) AuthCodeURL(state string, redirectURIExt url.Values) string
func (*OAuth2Config) ExchangeTokenURL ¶
func (cfg *OAuth2Config) ExchangeTokenURL(code string) string
func (*OAuth2Config) RefreshTokenURL ¶
func (cfg *OAuth2Config) RefreshTokenURL(refreshToken string) string
func (*OAuth2Config) UserInfoURL ¶
func (cfg *OAuth2Config) UserInfoURL(accessToken, openId, lang string) string
type Token ¶
type Token struct { AccessToken string // 网页授权接口调用凭证, 注意: 此access_token与基础支持的access_token不同 ExpiresAt int64 // 过期时间, unixtime, 分布式系统要求时间同步, 建议使用 NTP RefreshToken string // 用户刷新access_token OpenId string // 用户唯一标识, 请注意, 在未关注公众号时, 用户访问公众号的网页, 也会产生一个用户和公众号唯一的OpenID UnionId string // UnionID机制 Scopes []string // 用户授权的作用域 }
func (*Token) AccessTokenExpired ¶
判断 Token.AccessToken 是否过期, 过期返回 true, 否则返回 false
type UserInfo ¶
type UserInfo struct { OpenId string `json:"openid"` // 用户的唯一标识 Nickname string `json:"nickname"` // 用户昵称 Sex int `json:"sex"` // 用户的性别, 值为1时是男性, 值为2时是女性, 值为0时是未知 City string `json:"city"` // 普通用户个人资料填写的城市 Province string `json:"province"` // 用户个人资料填写的省份 Country string `json:"country"` // 国家, 如中国为CN // 用户头像, 最后一个数值代表正方形头像大小(有0, 46, 64, 96, 132数值可选, 0代表640*640正方形头像), // 用户没有头像时该项为空 HeadImageURL string `json:"headimgurl"` // 用户特权信息, json 数组, 如微信沃卡用户为(chinaunicom) Privilege []string `json:"privilege"` // 用户统一标识. 针对一个微信开放平台帐号下的应用, 同一用户的unionid是唯一的. UnionId string `json:"unionid"` }
func (*UserInfo) HeadImageSize ¶
获取用户图像的大小, 如果用户没有图像则返回 ErrNoHeadImage 错误.
Click to show internal directories.
Click to hide internal directories.