# README
sfdcclient
sfdcclient is a golang package implementing a pseudo-wrapper of an HTTP client, for making requests to salesforce's REST API through a connected app, making use of the Salesforce OAuth 2.0 JWT Bearer Flow for Server-to-Server authorization flow.
Installation
go get https://github.com/nicheinc/sfdcclient
Example usage
package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"time"
"github.com/nicheinc/sfdcclient"
)
func main() {
// Read your private key into memory
privateKeyBytes, err := os.ReadFile(os.ExpandEnv("/path/to/your/private/key/file.key"))
if err != nil {
log.Fatalf("Error creating logger: %s", err)
}
client, err := sfdcclient.NewClientWithJWTBearer(
true, // whether the instance the client connects to, is a sandbox or not
"https://xx123.salesforce.com",
"your_connected_app_consumer_key",
"username_using_the_connected_app@email_provider.com",
privateKeyBytes,
3*time.Second, // request timeout for the OAuth new token HTTP request (3 minute max)
http.Client{ // underlying HTTP client making all HTTP calls
Timeout: 5 * time.Second,
},
)
if err != nil {
log.Fatalf("Error initializing connected app salesforce client: %s", err)
}
url := "/services/data/v47.0/sobjects/MySObjectName/describe" // note that this is a relative URL to the salesforce instance server URL
statusCode, resBody, err := client.SendRequest(context.Background(), http.MethodGet, url, nil, nil)
if err != nil {
log.Fatalf("Error sending salesforce request: %s", err)
}
fmt.Printf("\nResponse status code: %d", statusCode) // -1 if an error is returned by the SendRequest call
fmt.Printf("\nResponse body: %s", string(resBody))
}
# Packages
No description provided by the author
# Functions
No description provided by the author
# Structs
AccessTokenResponse represents a successful response of a requests to salesforce for an OAuth token https://${yourInstance}.salesforce.com/services/oauth2/token.
No description provided by the author
OAuthErr represents an error that occurs during the OAuth authorization flow https://help.salesforce.com/articleView?id=remoteaccess_oauth_flow_errors.htm&type=5.
# Type aliases
APIErrs represents an error response from salesforce REST API endpoints Example: [ { "statusCode": "MALFORMED_ID", "message": "SomeSaleforceObject ID: id value of incorrect type: 1234", "fields": [ "Id" ] } ].