examples: add an example for WithCredentials
Show how to use the new WithCredentials option along with google.CredentialsFromJSON.
Also, pull the comments outside the example functions so godoc displays them more nicely.
@@ -16,16 +16,18 @@ package cloud_test
import (
"cloud.google.com/go/datastore"
+ "cloud.google.com/go/pubsub"
"golang.org/x/net/context"
+ "golang.org/x/oauth2/google"
"google.golang.org/api/option"
)
-func Example_applicationDefaultCredentials() {
// Google Application Default Credentials is the recommended way to authorize
// and authenticate clients.
//
- // See the following link on how to create and obtain Application Default Credentials:
+// For information on how to create and obtain Application Default Credentials, see
// https://developers.google.com/identity/protocols/application-default-credentials.
+func Example_applicationDefaultCredentials() {
client, err := datastore.NewClient(context.Background(), "project-id")
if err != nil {
// TODO: handle error.
@@ -33,15 +35,36 @@ func Example_applicationDefaultCredentials() {
_ = client // Use the client.
}
-func Example_serviceAccountFile() {
- // Use a JSON key file associated with a Google service account to
- // authenticate and authorize. Service Account keys can be created and
- // downloaded from https://console.developers.google.com/permissions/serviceaccounts.
+// You can use a file with credentials to authenticate and authorize, such as a JSON
+// key file associated with a Google service account. Service Account keys can be
+// created and downloaded from
+// https://console.developers.google.com/permissions/serviceaccounts.
//
- // Note: This example uses the datastore client, but the same steps apply to
+// This example uses the Datastore client, but the same steps apply to
// the other client libraries underneath this package.
+func Example_credentialsFile() {
client, err := datastore.NewClient(context.Background(),
- "project-id", option.WithServiceAccountFile("/path/to/service-account-key.json"))
+ "project-id", option.WithCredentialsFile("/path/to/service-account-key.json"))
+ if err != nil {
+ // TODO: handle error.
+ }
+ _ = client // Use the client.
+}
+
+// In some cases (for instance, you don't want to store secrets on disk), you can
+// create credentials from in-memory JSON and use the WithCredentials option.
+//
+// The google package in this example is at golang.org/x/oauth2/google.
+//
+// This example uses the PubSub client, but the same steps apply to
+// the other client libraries underneath this package.
+func Example_credentialsFromJSON() {
+ ctx := context.Background()
+ creds, err := google.CredentialsFromJSON(ctx, []byte("JSON creds"), pubsub.ScopePubSub)
+ if err != nil {
+ // TODO: handle error.
+ }
+ client, err := pubsub.NewClient(ctx, "project-id", option.WithCredentials(creds))
if err != nil {
// TODO: handle error.
}
