- 服务号自动回复接口调用不通过?
[图片] 接口地址以及token https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=94_KWGUTTOzolDR1fqCtn0cIdieCWrddg1Kv6_Msfpy9bDIKBA0gC9Ee1Vt6wmVejRf3dE0VBDIIWck4JK0jTZS2eQl-Ep-1hLgQMgpaCpp5vo6ZZf-D4nicOLx1GgCGUeADAWAO 参数 { "touser": "o0CTf7e2Bq7OBad0H9Rvxrj25q4c", "msgtype": "text", "text": { "content": "感谢关注!" } } 返回值 { "errcode": 45015, "errmsg": "response out of time limit or subscription is canceled rid: 6870c1d9-50a84b7d-2aa9894e" }
07-11 - 服务号发送模板消息提示发送成功但是收不到消息是为什么?
接口:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={access_token} 返回值:{'errcode': 0, 'errmsg': 'ok', 'msgid': 4027027664430055435}
06-11 - invalid code, rid: 6847c9ee-08a82280-254d9273?
扫码登录之后获取的code代入代码调试一直出现这个错误 func GetOfficialAccountUserFromCode(code string) (*providers.User, error) { return _wxOfficialAccount.OAuth.UserFromCode(code) } func (provider *WeChat) UserFromCode(code string) (*User, error) { if object.InArray("snsapi_base", provider.scopes) { tokenResponse, err := provider.GetTokenFromCode(code) if err != nil { return nil, err } bodyBuffer, err := ioutil.ReadAll(tokenResponse.Body) if err != nil { return nil, err } mapToken := &object.HashMap{} err = object.JsonDecode(bodyBuffer, mapToken) user := provider.MapUserToObject(mapToken) if user.GetString("id", "") == "" { return nil, errors.New((*mapToken)["errmsg"].(string)) } return user, nil } tokenResponse, err := provider.TokenFromCode(code) if err != nil { return nil, err } // 检查is_snapshotuser是否返回 isSnapShotUser := 0.0 if (*tokenResponse)["is_snapshotuser"] != nil { isSnapShotUser = (*tokenResponse)["is_snapshotuser"].(float64) } token := (*tokenResponse)[provider.accessTokenKey].(string) openID := (*tokenResponse)["openid"].(string) user, err := provider.UserFromToken(token, openID) if err != nil { return nil, err } refreshToken := "" if (*tokenResponse)[provider.refreshTokenKey] != nil { refreshToken = (*tokenResponse)[provider.refreshTokenKey].(string) } expiresIn := 0.0 if (*tokenResponse)[provider.expiresInKey] != nil { expiresIn = (*tokenResponse)[provider.expiresInKey].(float64) } return user.SetSnapShotUser(isSnapShotUser == 1). SetRefreshToken(refreshToken). SetExpiresIn(expiresIn). SetTokenResponse(tokenResponse), nil }
06-10