Esempio n. 1
0
        static async Task RunSample3Async(AppConfig appConfig)
        {
            int    accountId    = 999999999;
            string clientId     = "YOUR_CLIENT_ID";
            string clientSecret = "YOUR_CLIENT_SECRET";
            string redirectUrl  = "YOUR_REDIRECT_URL";
            string refreshToken = "YOUR_REFRESH_TOKEN";

            accountId    = appConfig.AccountId;
            clientId     = appConfig.ClientId;
            clientSecret = appConfig.ClientSecret;
            redirectUrl  = appConfig.RedirectUrl;
            refreshToken = appConfig.RefreshToken;

            var accessTokenSource = new AccessTokenSource(
                clientId: clientId,
                clientSecret: clientSecret,
                redirectUrl: redirectUrl,
                refreshToken: refreshToken
                );
            var basecampClientOptions = new BasecampClientOptions(accountId, accessTokenSource)
            {
                UserAgent            = UserAgent.Generate("YOUR_APPLICATION", "YOUR_CONTACT_ADDRESS"),
                RateLimiter          = new ConstantRateLimiter(delayMs: 500),
                ResponseMessageCache = new SingleResponseMessageCache(),
            };
            var basecampClient = new BasecampClient(basecampClientOptions);
        }
Esempio n. 2
0
        static async Task RunSample2Async(AppConfig appConfig)
        {
            int    accountId    = 999999999;
            string clientId     = "YOUR_CLIENT_ID";
            string clientSecret = "YOUR_CLIENT_SECRET";
            string redirectUrl  = "YOUR_REDIRECT_URL";
            string refreshToken = "YOUR_REFRESH_TOKEN";

            accountId    = appConfig.AccountId;
            clientId     = appConfig.ClientId;
            clientSecret = appConfig.ClientSecret;
            redirectUrl  = appConfig.RedirectUrl;
            refreshToken = appConfig.RefreshToken;

            var accessTokenSource = new AccessTokenSource(
                clientId: clientId,
                clientSecret: clientSecret,
                redirectUrl: redirectUrl,
                refreshToken: refreshToken
                );
            var basecampClient = new BasecampClient(accountId, accessTokenSource);


            var projects = await basecampClient.GetProjectsAsync();

            foreach (var project in projects.AsReadToEndEnumerable())
            {
                Console.WriteLine($"Project {project.Name} ({project.Id})");
            }

            var projectEnumerator = projects.GetReadToEndEnumerator();

            while (await projectEnumerator.MoveNextAsync(CancellationToken.None))
            {
                var project = projectEnumerator.Current;
                Console.WriteLine($"Project {project.Name} ({project.Id})");
            }

            var recordings = await basecampClient.GetRecordingsAsync(RecordingTypeEnum.ScheduleEntry);

            var bucketId    = recordings.First().Bucket.Id.Value;
            var recordingId = recordings.First().Id.Value;
            var events      = await basecampClient.GetEventsAsync(bucketId, recordingId);

            Console.WriteLine();
            Console.WriteLine("First Page Events:");

            foreach (var e in events)
            {
                Console.WriteLine($"Event {e.Action} ({e.Id})");
            }
        }
Esempio n. 3
0
        public async Task <AccessTokenSource> AuthenticateVerificationCodeAsync(string verificationCode)
        {
            string responseJson;

            var requestUri = new Uri(launchpadUri, "authorization/token");

            using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, requestUri))
            {
                requestMessage.Content = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    ["type"]          = "web_server",
                    ["client_id"]     = oauthOptions.ClientId,
                    ["redirect_uri"]  = oauthOptions.RedirectUrl,
                    ["client_secret"] = oauthOptions.ClientSecret,
                    ["code"]          = verificationCode
                });
                requestMessage.Headers.UserAgent.TryParseAdd(userAgent);

                using (var httpClient = httpClientPool.Create())
                    using (var responseMessage = await httpClient.SendAsync(requestMessage))
                    {
                        await HttpResponseUtils.EnsureSuccessAsync(responseMessage);

                        responseJson = await responseMessage.Content.ReadAsStringAsync();
                    }
            }

            var tokenResponse            = JsonConvert.DeserializeObject <TokenResponse>(responseJson);
            var accessTokenSourceOptions = new AccessTokenSourceOptions(
                tokenUri: new Uri(launchpadUri, "authorization/token"),
                oauthOptions: oauthOptions,
                refreshToken: tokenResponse.RefreshToken
                );
            var accessTokenSource = new AccessTokenSource(accessTokenSourceOptions);

            accessTokenSource.LoadToken(tokenResponse);
            return(accessTokenSource);
        }