Previous     Next

SEOMoz Linkscape API wrapper in VB.Net

SEOMoz have just released a Free API to get Link info & their MozRank for domains. Before you can use the API, go to SEOMoz to get your AccessID and SecretKey.

The code here borrows from the function aws_GetSignature that comes with the Amazon Webservice.


        Private Function dcMozRankGet(ByVal sWebSiteURL As String) As Decimal
                Dim sAccessID As String = "YourAccessID"
                Dim sSecretKey As String = "YourSecretKey"
                Dim lExpires As Long = DateDiff("s", DateSerial(1970, 1, 1), Now()) + 300
                Dim sSafeSignature As String
                Dim sURLToFetch As String
                Dim sResult As String

                sWebSiteURL = HttpUtility.UrlEncode(sWebSiteURL)
                sSafeSignature = Encode(sAccessID, lExpires, sSecretKey, vbLf)

                sURLToFetch = "http://lsapi.seomoz.com/linkscape/mozrank/" & _
                sWebSiteURL & "?AccessID=" & sAccessID & "&Expires=" & lExpires & _
                "&Signature=" & sSafeSignature

                sResult = sGetData(sURLToFetch)
                sResult = Mid$(sResult, InStr(sResult, """umrp"":") + 7)
                sResult = sResult.Split(",")(0)
                dcMozRankGet = CDec(sResult)
        End Function

        Public Function Encode(ByVal sAccessID As String, _
        ByVal lExpires As Long, _
        ByVal SecretAccessKey As String, ByVal Separator As String) As String

                Dim sAccessExpires As String
                sAccessExpires = sAccessID & Separator & lExpires

                Dim strSig_UTF8 As Byte()
                Dim strSignature As String
                Dim objUTF8Encoder As UTF8Encoding
                Dim objHMACSHA1 As HMACSHA1

                objUTF8Encoder = New UTF8Encoding()
                strSig_UTF8 = objUTF8Encoder.GetBytes(sAccessExpires)

                objHMACSHA1 = New HMACSHA1( _
                     objUTF8Encoder.GetBytes(SecretAccessKey))
                strSignature = Convert.ToBase64String _
                     (objHMACSHA1.ComputeHash( _
                     objUTF8Encoder.GetBytes( _
                     sAccessExpires.ToCharArray())))

                Encode = HttpUtility.UrlEncode(strSignature)

        End Function

        Public Function sGetData(ByVal sURL As String, _
Optional ByRef oCookies As CookieContainer = Nothing) As String

                Dim Writer As StreamWriter = Nothing
                Dim WebRequestObject As HttpWebRequest
                Dim sr As StreamReader
                Dim WebResponseObject As HttpWebResponse
                Dim sbResultsBuilder As New StringBuilder
                Dim sBuffer(8192) As Char
                Dim iRetChars As Integer

                WebRequestObject = CType(WebRequest.Create(sURL), HttpWebRequest)
                WebRequestObject.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"
                WebRequestObject.Method = "GET"
                WebRequestObject.Timeout = 55000
                WebRequestObject.ReadWriteTimeout = 55000
                WebRequestObject.AllowAutoRedirect = True

                If Not (oCookies Is Nothing) Then
                        WebRequestObject.CookieContainer = oCookies
                End If

                WebResponseObject = CType(WebRequestObject.GetResponse(), HttpWebResponse)

                sr = New StreamReader(WebResponseObject.GetResponseStream)

                Do
                        iRetChars = sr.Read(sBuffer, 0, sBuffer.Length)
                        If iRetChars > 0 Then
                                sbResultsBuilder.Append(sBuffer, 0, iRetChars)
                        End If
                Loop While iRetChars > 0
                sGetData = sbResultsBuilder.ToString

        End Function

An example call is:

dcYourRank = dcMozRankGet("www.seomoz.org")

This post brought to you by WeGotDomain.com - Over 10,000 Aged domains for sale!

Related posts:

  1. Getting Flights info from the Kayak API in ASP.Net
  2. Allowing special characters (forward slash, hash, asterisk etc) in ASP.Net MVC URL parameters
  3. Automate FireFox with ASP.net

If you liked this, then subscribe to my RSS feed