Unofficial esa SDK for the Go programming language.
Progress of supporting APIs...
- OAuth
GET /oauth/token/info
- Team
GET /v1/teams
GET /v1/teams/:team_name
- Stats
GET /v1/teams/:team_name/stats
- Member
GET /v1/teams/:team_name/members
DELETE /v1/teams/:team_name/members/:screen_name
- Post
GET /v1/teams/docs/posts
GET /v1/teams/:team_name/posts/:post_number
POST /v1/teams/:team_name/posts
PATCH /v1/teams/:team_name/posts/:post_number
DELETE /v1/teams/:team_name/posts/:post_number
- Comment
GET /v1/teams/:team_name/posts/:post_number/comments
GET /v1/teams/:team_name/comments/:comment_id
POST /v1/teams/:team_name/posts/:post_number/comments
PATCH /v1/teams/:team_name/comments/:comment_id
DELETE /v1/teams/:team_name/comments/:comment_id
GET /v1/teams/:team_name/comments
- Star
GET /v1/teams/:team_name/posts/:post_number/stargazers
POST /v1/teams/:team_name/posts/:post_number/star
DELETE /v1/teams/:team_name/posts/:post_number/star
GET /v1/teams/:team_name/comments/:comment_id/stargazers
POST /v1/teams/:team_name/comments/:comment_id/star
DELETE /v1/teams/:team_name/comments/:comment_id/star
- Watch
GET /v1/teams/:team_name/posts/:post_number/watchers
POST /v1/teams/:team_name/posts/:post_number/watch
DELETE /v1/teams/:team_name/posts/:post_number/watch
- Tag
GET v1/teams/:team_name/tags
- Category
POST v1/teams/:team_name/categories/batch_move
- Emoji
GET /v1/teams/:team_name/emojis
POST /v1/teams/:team_name/emojis
DELETE /v1/teams/:team_name/emojis/:code
- User
GET /v1/user
- Invitation by shared URL
GET /v1/teams/:team_name/invitation
POST /v1/teams/:team_name/invitation_regenerator
- Invitation by Email
POST /v1/teams/:team_name/invitations
GET /v1/teams/:team_name/invitations
DELETE /v1/teams/:team_name/invitations/:code
package main
import (
"context"
"fmt"
"os"
"github.com/michimani/go-esa/esaapi/oauthtoken"
"github.com/michimani/go-esa/esaapi/oauthtoken/types"
"github.com/michimani/go-esa/gesa"
)
func main() {
token := "your-access-token"
c, err := gesa.NewClient(&gesa.NewClientInput{
AccessToken: token,
})
if err != nil {
panic(err)
}
getOAuthTokenInfo(c)
}
func getOAuthTokenInfo(c *gesa.Client) {
r, err := oauthtoken.GetOAuthTokenInfo(context.Background(), c, &types.GetOAuthTokenInfoInput{})
if err != nil {
fmt.Println(err)
ge := err.(*gesa.GesaError)
if ge.OnAPI {
fmt.Println(ge.EsaAPIError.StatusCode)
fmt.Println(ge.EsaAPIError.Status)
fmt.Println(ge.EsaAPIError.Error)
fmt.Println(ge.EsaAPIError.Message)
if ge.EsaAPIError.RateLimitInfo != nil {
fmt.Println(ge.EsaAPIError.RateLimitInfo.Limit)
fmt.Println(ge.EsaAPIError.RateLimitInfo.Remaining)
fmt.Println(ge.EsaAPIError.RateLimitInfo.Reset)
}
}
return
}
fmt.Printf("Response: %+v \n", r)
fmt.Println(gesa.IntValue(r.ResourceOwnerID))
fmt.Println(r.Scope)
fmt.Println(r.Application.UID)
fmt.Println(r.CreatedAt.Time())
fmt.Println(r.User.ID)
fmt.Println(r.RateLimitInfo)
}
See _examples directory.