github.com/yaegashi/msgraph.go@v0.1.4/msauth/msauth_test.go (about)

     1  package msauth_test
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"io/ioutil"
     7  	"log"
     8  
     9  	"github.com/yaegashi/msgraph.go/msauth"
    10  	"golang.org/x/oauth2"
    11  )
    12  
    13  const (
    14  	tenantID       = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    15  	clientID       = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
    16  	clientSecret   = "ZZZZZZZZZZZZZZZZZZZZZZZZ"
    17  	username       = "user.name@your-domain.com"
    18  	password       = "secure-password"
    19  	tokenStorePath = "token_store.json"
    20  )
    21  
    22  var (
    23  	daScopes = []string{"openid", "profile", "offline_access", "User.Read", "Files.Read"}
    24  	ccScopes = []string{msauth.DefaultMSGraphScope}
    25  )
    26  
    27  func ExampleManager_DeviceAuthorizationGrant() {
    28  	ctx := context.Background()
    29  	m := msauth.NewManager()
    30  	m.LoadFile(tokenStorePath)
    31  	ts, err := m.DeviceAuthorizationGrant(ctx, tenantID, clientID, daScopes, nil)
    32  	if err != nil {
    33  		log.Fatal(err)
    34  	}
    35  	err = m.SaveFile(tokenStorePath)
    36  	if err != nil {
    37  		log.Fatal(err)
    38  	}
    39  	httpClient := oauth2.NewClient(ctx, ts)
    40  	res, err := httpClient.Get("https://graph.microsoft.com/v1.0/me")
    41  	if err != nil {
    42  		log.Fatal(err)
    43  	}
    44  	defer res.Body.Close()
    45  	b, err := ioutil.ReadAll(res.Body)
    46  	if err != nil {
    47  		log.Fatal(err)
    48  	}
    49  	fmt.Printf("%s\n", string(string(b)))
    50  }
    51  
    52  func ExampleManager_ClientCredentialsGrant() {
    53  	ctx := context.Background()
    54  	m := msauth.NewManager()
    55  	ts, err := m.ClientCredentialsGrant(ctx, tenantID, clientID, clientSecret, ccScopes)
    56  	if err != nil {
    57  		log.Fatal(err)
    58  	}
    59  	httpClient := oauth2.NewClient(ctx, ts)
    60  	res, err := httpClient.Get("https://graph.microsoft.com/v1.0/me")
    61  	if err != nil {
    62  		log.Fatal(err)
    63  	}
    64  	defer res.Body.Close()
    65  	b, err := ioutil.ReadAll(res.Body)
    66  	if err != nil {
    67  		log.Fatal(err)
    68  	}
    69  	fmt.Printf("%s\n", string(string(b)))
    70  }
    71  
    72  func ExampleManager_ResourceOwnerPasswordGrant() {
    73  	ctx := context.Background()
    74  	m := msauth.NewManager()
    75  	ts, err := m.ResourceOwnerPasswordGrant(ctx, tenantID, clientID, clientSecret, username, password, ccScopes)
    76  	if err != nil {
    77  		log.Fatal(err)
    78  	}
    79  	httpClient := oauth2.NewClient(ctx, ts)
    80  	res, err := httpClient.Get("https://graph.microsoft.com/v1.0/me")
    81  	if err != nil {
    82  		log.Fatal(err)
    83  	}
    84  	defer res.Body.Close()
    85  	b, err := ioutil.ReadAll(res.Body)
    86  	if err != nil {
    87  		log.Fatal(err)
    88  	}
    89  	fmt.Printf("%s\n", string(string(b)))
    90  }