Por mucho tiempo estuvimos utilizando bit.ly para achicar URL pero cuando decidieron de dejar afuera de uso los API 2 y 3 en marzo 2020 hemos buscado otra alternativa para este servicio. Encontramos cutt.ly que lo permite. Al momento de escribir esta nota el interfaz usuario de la web esta corto en funcionalidades pero ojala que con el tiempo se arregle.
A continuación el código que permite llamar la API y recuperar la información.
Dim sURLCorto as string = ""
Dim scCuttly As ccuttlyResults = cCuttly.AchicarURL("http://www.mipagina.com/Detalles.aspx?Me_Id=" & iKeyValue)
If scCuttly.URL.status = 7 Then
sURLCorto = scCuttly.URL.shortLink
Try
Dim uCmd As New SqlCommand("sp_tblMiTabla_URLCorto_upd", objConn)
uCmd.CommandType = CommandType.StoredProcedure
uCmd.Parameters.AddWithValue("@Me_Id", iKeyValue)
uCmd.Parameters.AddWithValue("@Me_URL_Corto", sURLCorto)
uCmd.ExecuteNonQuery()
Catch ex As Exception
Response.Write(Err.Description)
Finally
Else
'----- almacenar el resultado por analisis de la falla
End If
Y la clase
Imports System.Net
Imports Newtonsoft.Json
Public Class cCuttly
Private Const apiKey As String = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
Public Shared Function AchicarURL(ByVal longUrl As String) As ccuttlyResults
' Esta parte es requirida con un sitio en https://
ServicePointManager.Expect100Continue = True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
Dim result As String = ""
Dim webClient As New System.Net.WebClient
result = webClient.DownloadString("https://cutt.ly/api/api.php?key=" & apiKey & "&short=" & HttpUtility.UrlEncode(longUrl))
AchicarURL = JsonConvert.DeserializeObject(Of ccuttlyResults)(result)
End Function
Public Class ccuttlyResults
Public URL As JSON_result
End Class
Public Class JSON_result
Public status As Integer
Public sDate As String
Public shortLink As String
Public fullLink As String
Public title As String
End Class
End Class