SEOMoz Linkscape API wrapper in VB.Net February 10
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: