public string GetOauthCodeUrl(string clientId, AppScopeEnum scope, string redirectUris = "urn:ietf:wg:oauth:2.0:oob")
        {
            var getScope     = Uri.EscapeDataString(AppScopesConverter.GetScopes(scope));
            var oauthCodeUrl = $"{_instanceUrl}/oauth/authorize?scope={getScope}&response_type=code&redirect_uri={redirectUris}&client_id={clientId}";

            return(oauthCodeUrl);
        }
Example #2
0
        public async Task <AppInfo> CreateAppAsync(string clientName, AppScopeEnum scopes, string website, string redirectUris = "urn:ietf:wg:oauth:2.0:oob")
        {
            var parameters = new List <KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("client_name", clientName));
            parameters.Add(new KeyValuePair <string, string>("redirect_uris", redirectUris));
            parameters.Add(new KeyValuePair <string, string>("scopes", AppScopesConverter.GetScopes(scopes)));
            parameters.Add(new KeyValuePair <string, string>("website", website));

            var formUrlEncodedContent = new FormUrlEncodedContent(parameters);
            var url      = _instanceUrl + ApiRoutes.CreateApp;
            var response = await _httpClient.PostAsync(url, formUrlEncodedContent);

            var content = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <AppInfo>(content));
        }
        public static string GetScopes(AppScopeEnum scope)
        {
            var returnValue = "";

            if (scope.HasFlag(AppScopeEnum.Read))
            {
                returnValue += $" {AppScopes.Read}";
            }
            if (scope.HasFlag(AppScopeEnum.Write))
            {
                returnValue += $" {AppScopes.Write}";
            }
            if (scope.HasFlag(AppScopeEnum.Follow))
            {
                returnValue += $" {AppScopes.Follow}";
            }

            return(returnValue.Trim());
        }
        public async Task <TokenInfo> GetTokenInfoAsync(string clientId, string clientSecret, string userEmail, string userPassword, AppScopeEnum scope)
        {
            var parameters = new List <KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("client_id", clientId));
            parameters.Add(new KeyValuePair <string, string>("client_secret", clientSecret));
            parameters.Add(new KeyValuePair <string, string>("grant_type", "password"));
            parameters.Add(new KeyValuePair <string, string>("username", userEmail));
            parameters.Add(new KeyValuePair <string, string>("password", userPassword));
            parameters.Add(new KeyValuePair <string, string>("scope", AppScopesConverter.GetScopes(scope)));

            var formUrlEncodedContent = new FormUrlEncodedContent(parameters);
            var url      = _instanceUrl + ApiRoutes.GetToken;
            var response = await _httpClient.PostAsync(url, formUrlEncodedContent);

            var content = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <TokenInfo>(content));
        }