Documentation
¶
Overview ¶
Package go2 provides a Go SDK for the Go2 gRPC API.
Example usage:
client, err := go2.NewClient(go2.WithAPIKey("go2_your_key"))
if err != nil {
log.Fatal(err)
}
defer client.Close()
// Create a smart link
link, err := client.Links.Create(ctx, &linksv1.CreateLinkRequest{
Slug: "myapp",
Title: "My App",
IosUrl: "https://apps.apple.com/...",
AndroidUrl: "https://play.google.com/...",
})
// Get analytics
stats, err := client.Analytics.GetStats(ctx, link.Id, "7d")
// Generate QR code
qr, err := client.QR.Generate(ctx, link.Id, 256, "png")
Index ¶
- Constants
- Variables
- type AnalyticsClient
- func (c *AnalyticsClient) GetCountries(ctx context.Context, linkID string, period string, limit int32) ([]*analyticsv1.CountryStats, error)
- func (c *AnalyticsClient) GetPlatforms(ctx context.Context, linkID string, period string) ([]*analyticsv1.PlatformStats, error)
- func (c *AnalyticsClient) GetReferrers(ctx context.Context, linkID string, period string, limit int32) ([]*analyticsv1.ReferrerStats, error)
- func (c *AnalyticsClient) GetStats(ctx context.Context, linkID string, period string) (*analyticsv1.GetStatsResponse, error)
- func (c *AnalyticsClient) GetTimeseries(ctx context.Context, linkID string, period string) ([]*analyticsv1.TimeseriesPoint, error)
- type CampaignsClient
- func (c *CampaignsClient) Create(ctx context.Context, req *campaignsv1.CreateCampaignRequest) (*campaignsv1.Campaign, error)
- func (c *CampaignsClient) Delete(ctx context.Context, id string) error
- func (c *CampaignsClient) ExportLinks(ctx context.Context, campaignID string) (*campaignsv1.ExportLinksResponse, error)
- func (c *CampaignsClient) GenerateLinks(ctx context.Context, req *campaignsv1.GenerateLinksRequest) (*campaignsv1.GenerateLinksResponse, error)
- func (c *CampaignsClient) Get(ctx context.Context, id string) (*campaignsv1.Campaign, error)
- func (c *CampaignsClient) GetStats(ctx context.Context, campaignID string) (*campaignsv1.CampaignStats, error)
- func (c *CampaignsClient) List(ctx context.Context, limit, offset int32, status, search string) (*campaignsv1.ListCampaignsResponse, error)
- func (c *CampaignsClient) ListLinks(ctx context.Context, campaignID string, limit, offset int32, clickedOnly bool, ...) (*campaignsv1.ListCampaignLinksResponse, error)
- func (c *CampaignsClient) Update(ctx context.Context, req *campaignsv1.UpdateCampaignRequest) (*campaignsv1.Campaign, error)
- type Client
- type DomainsClient
- func (c *DomainsClient) Create(ctx context.Context, domain string) (*domainsv1.CreateDomainResponse, error)
- func (c *DomainsClient) Delete(ctx context.Context, id string) error
- func (c *DomainsClient) Get(ctx context.Context, id string) (*domainsv1.Domain, error)
- func (c *DomainsClient) List(ctx context.Context) ([]*domainsv1.Domain, error)
- func (c *DomainsClient) Verify(ctx context.Context, id string) (*domainsv1.Domain, error)
- type Error
- type IntegrationsClient
- func (c *IntegrationsClient) Create(ctx context.Context, req *integrationsv1.CreateIntegrationRequest) (*integrationsv1.Integration, error)
- func (c *IntegrationsClient) Delete(ctx context.Context, id string) error
- func (c *IntegrationsClient) Get(ctx context.Context, id string) (*integrationsv1.Integration, error)
- func (c *IntegrationsClient) GetTypes(ctx context.Context) (*integrationsv1.GetIntegrationTypesResponse, error)
- func (c *IntegrationsClient) List(ctx context.Context) ([]*integrationsv1.Integration, error)
- func (c *IntegrationsClient) Test(ctx context.Context, id string) (*integrationsv1.TestIntegrationResponse, error)
- func (c *IntegrationsClient) Update(ctx context.Context, req *integrationsv1.UpdateIntegrationRequest) (*integrationsv1.Integration, error)
- type LinksClient
- func (c *LinksClient) CheckSlug(ctx context.Context, slug string) (bool, error)
- func (c *LinksClient) Create(ctx context.Context, req *linksv1.CreateLinkRequest) (*linksv1.Link, error)
- func (c *LinksClient) Delete(ctx context.Context, id string) error
- func (c *LinksClient) Get(ctx context.Context, id string) (*linksv1.Link, error)
- func (c *LinksClient) List(ctx context.Context) ([]*linksv1.Link, error)
- func (c *LinksClient) Update(ctx context.Context, req *linksv1.UpdateLinkRequest) (*linksv1.Link, error)
- type Option
- type QRClient
Constants ¶
const (
// DefaultEndpoint is the default gRPC endpoint for the Go2 API.
DefaultEndpoint = "grpc.go2.ge:443"
)
Variables ¶
var ( ErrNotFound = errors.New("go2: resource not found") ErrUnauthenticated = errors.New("go2: invalid or missing API key") ErrPermissionDenied = errors.New("go2: permission denied") ErrInvalidArgument = errors.New("go2: invalid argument") ErrRateLimited = errors.New("go2: rate limit exceeded") ErrInternal = errors.New("go2: internal server error") )
Common errors returned by the SDK.
Functions ¶
This section is empty.
Types ¶
type AnalyticsClient ¶
type AnalyticsClient struct {
// contains filtered or unexported fields
}
AnalyticsClient provides methods for link analytics.
func (*AnalyticsClient) GetCountries ¶
func (c *AnalyticsClient) GetCountries(ctx context.Context, linkID string, period string, limit int32) ([]*analyticsv1.CountryStats, error)
GetCountries returns click breakdown by country.
func (*AnalyticsClient) GetPlatforms ¶
func (c *AnalyticsClient) GetPlatforms(ctx context.Context, linkID string, period string) ([]*analyticsv1.PlatformStats, error)
GetPlatforms returns click breakdown by platform.
func (*AnalyticsClient) GetReferrers ¶
func (c *AnalyticsClient) GetReferrers(ctx context.Context, linkID string, period string, limit int32) ([]*analyticsv1.ReferrerStats, error)
GetReferrers returns click breakdown by referrer.
func (*AnalyticsClient) GetStats ¶
func (c *AnalyticsClient) GetStats(ctx context.Context, linkID string, period string) (*analyticsv1.GetStatsResponse, error)
GetStats returns overview statistics for a link.
func (*AnalyticsClient) GetTimeseries ¶
func (c *AnalyticsClient) GetTimeseries(ctx context.Context, linkID string, period string) ([]*analyticsv1.TimeseriesPoint, error)
GetTimeseries returns click data over time.
type CampaignsClient ¶
type CampaignsClient struct {
// contains filtered or unexported fields
}
CampaignsClient provides methods for managing marketing campaigns.
func (*CampaignsClient) Create ¶
func (c *CampaignsClient) Create(ctx context.Context, req *campaignsv1.CreateCampaignRequest) (*campaignsv1.Campaign, error)
Create creates a new campaign.
func (*CampaignsClient) Delete ¶
func (c *CampaignsClient) Delete(ctx context.Context, id string) error
Delete deletes a campaign.
func (*CampaignsClient) ExportLinks ¶
func (c *CampaignsClient) ExportLinks(ctx context.Context, campaignID string) (*campaignsv1.ExportLinksResponse, error)
ExportLinks exports all campaign links.
func (*CampaignsClient) GenerateLinks ¶
func (c *CampaignsClient) GenerateLinks(ctx context.Context, req *campaignsv1.GenerateLinksRequest) (*campaignsv1.GenerateLinksResponse, error)
GenerateLinks generates links for campaign recipients in bulk.
func (*CampaignsClient) Get ¶
func (c *CampaignsClient) Get(ctx context.Context, id string) (*campaignsv1.Campaign, error)
Get returns a campaign by ID.
func (*CampaignsClient) GetStats ¶
func (c *CampaignsClient) GetStats(ctx context.Context, campaignID string) (*campaignsv1.CampaignStats, error)
GetStats returns campaign statistics.
func (*CampaignsClient) List ¶
func (c *CampaignsClient) List(ctx context.Context, limit, offset int32, status, search string) (*campaignsv1.ListCampaignsResponse, error)
List returns all campaigns for the authenticated user.
func (*CampaignsClient) ListLinks ¶
func (c *CampaignsClient) ListLinks(ctx context.Context, campaignID string, limit, offset int32, clickedOnly bool, search string) (*campaignsv1.ListCampaignLinksResponse, error)
ListLinks returns campaign links with pagination.
func (*CampaignsClient) Update ¶
func (c *CampaignsClient) Update(ctx context.Context, req *campaignsv1.UpdateCampaignRequest) (*campaignsv1.Campaign, error)
Update updates a campaign.
type Client ¶
type Client struct {
// Links provides access to the LinkService for managing smart links.
Links *LinksClient
// Analytics provides access to the AnalyticsService for link statistics.
Analytics *AnalyticsClient
// Integrations provides access to the IntegrationService.
Integrations *IntegrationsClient
// Domains provides access to the DomainService for custom domains.
Domains *DomainsClient
// QR provides access to the QRService for QR code generation.
QR *QRClient
// Campaigns provides access to the CampaignService for marketing campaigns.
Campaigns *CampaignsClient
// contains filtered or unexported fields
}
Client is the Go2 API client.
type DomainsClient ¶
type DomainsClient struct {
// contains filtered or unexported fields
}
DomainsClient provides methods for managing custom domains.
func (*DomainsClient) Create ¶
func (c *DomainsClient) Create(ctx context.Context, domain string) (*domainsv1.CreateDomainResponse, error)
Create adds a new custom domain.
func (*DomainsClient) Delete ¶
func (c *DomainsClient) Delete(ctx context.Context, id string) error
Delete removes a custom domain.
type IntegrationsClient ¶
type IntegrationsClient struct {
// contains filtered or unexported fields
}
IntegrationsClient provides methods for managing integrations.
func (*IntegrationsClient) Create ¶
func (c *IntegrationsClient) Create(ctx context.Context, req *integrationsv1.CreateIntegrationRequest) (*integrationsv1.Integration, error)
Create creates a new integration.
func (*IntegrationsClient) Delete ¶
func (c *IntegrationsClient) Delete(ctx context.Context, id string) error
Delete deletes an integration.
func (*IntegrationsClient) Get ¶
func (c *IntegrationsClient) Get(ctx context.Context, id string) (*integrationsv1.Integration, error)
Get returns an integration by ID.
func (*IntegrationsClient) GetTypes ¶
func (c *IntegrationsClient) GetTypes(ctx context.Context) (*integrationsv1.GetIntegrationTypesResponse, error)
GetTypes returns all available integration types and events.
func (*IntegrationsClient) List ¶
func (c *IntegrationsClient) List(ctx context.Context) ([]*integrationsv1.Integration, error)
List returns all integrations for the authenticated user.
func (*IntegrationsClient) Test ¶
func (c *IntegrationsClient) Test(ctx context.Context, id string) (*integrationsv1.TestIntegrationResponse, error)
Test sends a test notification to an integration.
func (*IntegrationsClient) Update ¶
func (c *IntegrationsClient) Update(ctx context.Context, req *integrationsv1.UpdateIntegrationRequest) (*integrationsv1.Integration, error)
Update updates an integration.
type LinksClient ¶
type LinksClient struct {
// contains filtered or unexported fields
}
LinksClient provides methods for managing smart links.
func (*LinksClient) Create ¶
func (c *LinksClient) Create(ctx context.Context, req *linksv1.CreateLinkRequest) (*linksv1.Link, error)
Create creates a new smart link.
func (*LinksClient) Delete ¶
func (c *LinksClient) Delete(ctx context.Context, id string) error
Delete deletes a link.
func (*LinksClient) Update ¶
func (c *LinksClient) Update(ctx context.Context, req *linksv1.UpdateLinkRequest) (*linksv1.Link, error)
Update updates a link.
type Option ¶
type Option func(*clientConfig)
Option configures the client.
func WithAPIKey ¶
WithAPIKey sets the API key for authentication. Required.
func WithEndpoint ¶
WithEndpoint sets a custom gRPC endpoint. Default: grpc.go2.ge:443
func WithInsecure ¶
func WithInsecure() Option
WithInsecure disables TLS. Use only for local development.
type QRClient ¶
type QRClient struct {
// contains filtered or unexported fields
}
QRClient provides methods for QR code generation.
func (*QRClient) Generate ¶
func (c *QRClient) Generate(ctx context.Context, req *qrv1.GenerateQRRequest) (*qrv1.GenerateQRResponse, error)
Generate creates a QR code for a link.