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 }