mirror of
https://github.com/cubixle/ebay.git
synced 2026-04-24 22:34:42 +01:00
102 lines
2.7 KiB
Markdown
102 lines
2.7 KiB
Markdown
# ebay
|
|
|
|
ebay is a Go client library for accessing the [eBay API](https://developer.ebay.com/).
|
|
|
|
## Usage
|
|
|
|
Create a new eBay API client using the New... functions to access the eBay API:
|
|
|
|
```go
|
|
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](https://developer.ebay.com/api-docs/static/oauth-client-credentials-grant.html):
|
|
|
|
```go
|
|
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](https://developer.ebay.com/api-docs/static/oauth-authorization-code-grant.html):
|
|
|
|
|
|
```go
|
|
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
|
|
|
|
- https://github.com/mholt/json-to-go for saving everyone's time.
|
|
- https://github.com/google/go-github for their library design.
|