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); }
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)); }