Skip to content

Instantly share code, notes, and snippets.

@ajtatum
Created December 7, 2020 15:42
Show Gist options
  • Save ajtatum/5b5765ff93afa4aaaeba47b7da1b77e2 to your computer and use it in GitHub Desktop.
Save ajtatum/5b5765ff93afa4aaaeba47b7da1b77e2 to your computer and use it in GitHub Desktop.
Create Bitly Custom Backhalf (Public)
public async Task<string> GetShortUrl(string longUrl, string customBitLink)
{
var shortContent = $"{{\"long_url\":\"{longUrl}\",\"group_guid\":\"groupGuid\",\"domain\":\"domain.com\"}}";
var shortenUrlRequest = new HttpRequestMessage(HttpMethod.Post, ShortenUrl)
{
Content = new StringContent(shortContent, Encoding.UTF8, "application/json")
};
shortenUrlRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _appSettings.BitlyApiToken);
var shortenUrlResponse = await _httpClient.SendAsync(shortenUrlRequest).ConfigureAwait(false);
if (!shortenUrlResponse.IsSuccessStatusCode)
return longUrl;
var shortenUrlResponseString = await shortenUrlResponse.Content.ReadAsStringAsync();
var shortenUrlJsonResponse = JsonConvert.DeserializeObject<dynamic>(shortenUrlResponseString);
string shortLinkId = Convert.ToString(shortenUrlJsonResponse["id"]);
var content = $"{{\"bitlink_id\":\"{shortLinkId}\",\"custom_bitlink\":\"{customBitLink}\",\"group_guid\":\"groupGuid\",\"domain\":\"domain.com\"}}";
var backHalfRequest = new HttpRequestMessage(HttpMethod.Post, CustomBackHalfBitLinkUrl)
{
Content = new StringContent(content, Encoding.UTF8, "application/json")
};
backHalfRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _appSettings.BitlyApiToken);
var backHalfResponse = await _httpClient.SendAsync(backHalfRequest);
if (!backHalfResponse.IsSuccessStatusCode)
return longUrl;
var backHalfResponseString = await backHalfResponse.Content.ReadAsStringAsync();
var backHalfResponseJson = JsonConvert.DeserializeObject<dynamic>(backHalfResponseString);
string customBitLinkUrl = Convert.ToString(backHalfResponseJson["custom_bitlink"]);
return customBitLinkUrl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment