ebay is a Go client library for accessing the eBay API.
Create a new eBay API client using the New... functions to access the eBay API:
client := ebay.NewClient(nil)
// Search for iphones or ipads sorted by price in ascending order.
search, err := client.Buy.Browse.Search(context.Background(), ebay.OptBrowseSearch("iphone ipad"), ebay.OptBrowseSearchSort("price"))
The ebay library does not directly handle authentication. Instead, when creating a new client, pass an http.Client that can handle authentication for you.
A TokenSource
function is provided if you are using golang.org/x/oauth2
. It overrides the token type to Bearer
so your requests won't fail.
An example for the client credentials grant flow:
import (
"context"
"golang.org/x/oauth2"
"golang.org/x/oauth2/clientcredentials"
"github.com/jybp/ebay"
)
func main() {
cfg := clientcredentials.Config{
ClientID: "your client id",
ClientSecret: "your client secret",
TokenURL: ebay.OAuth20SandboxEndpoint.TokenURL,
Scopes: []string{ebay.ScopeRoot /* your scopes */},
}
ctx := context.Background()
tc := oauth2.NewClient(ctx, ebay.TokenSource(cfg.TokenSource(ctx)))
client := ebay.NewSandboxClient(tc)
// Get an item detail.
result, err := client.Buy.Browse.GetItem(ctx, "v1|123456789012|0")
}
An example for the authorization code grant flow:
import (
"context"
"golang.org/x/oauth2"
"github.com/jybp/ebay"
)
func main() {
cfg := oauth2.Config{
ClientID: "your client id",
ClientSecret: "your client secret",
Endpoint: ebay.OAuth20SandboxEndpoint,
RedirectURL: "your eBay Redirect URL name (RuName)",
Scopes: []string{ebay.ScopeBuyOfferAuction /* your scopes */},
}
url := cfg.AuthCodeURL(state)
fmt.Printf("Visit the URL: %v\n", url)
var authCode string /* Retrieve the authorization code. */
ctx := context.Background()
tok, err := cfg.Exchange(ctx, authCode)
if err != nil {
panic(err)
}
client := ebay.NewSandboxClient(oauth2.NewClient(ctx, ebay.TokenSource(cfg.TokenSource(ctx, tok))))
// Get bidding for the authenticated user.
bidding, err := client.Buy.Offer.GetBidding(ctx, "v1|123456789012|0", ebay.BuyMarketplaceUSA)
}
Currently, only some Buy APIs are supported:
API | Resource |
---|---|
Browse | item_summary |
Browse | item |
Offer | bidding |
https://godoc.org/github.com/jybp/ebay
- https://github.com/mholt/json-to-go for saving everyone's time.
- https://github.com/google/go-github for their library design.