Skip to content

Latest commit

 

History

History
101 lines (74 loc) · 2.74 KB

README.md

File metadata and controls

101 lines (74 loc) · 2.74 KB

ebay

ebay is a Go client library for accessing the eBay API.

Usage

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"))

Authentication

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)
}

Support

Currently, only some Buy APIs are supported:

API Resource
Browse item_summary
Browse item
Offer bidding

Documentation

https://godoc.org/github.com/jybp/ebay

Thanks