<%
'=========================================
'
' Membership API 0.1
'
' Code Examples - Classic ASP
' 15 Nov 2006 Justin Wignall
'
'
' Please note the code displayed below is NOT suggested as a best practice
' It should however enable you to get started to plugin in to the API
' with little knowledge of the underlying code
' To use this code you need to supply
'
' 1) An API key generated in the Membersahip API section.
' 2) Optionally a PersonKey to check if a particular user is
' valid and who they say they are.
'
'=========================================
Dim Key
Dim PersonKey
Dim isMemberURL
Dim listMembersURL
Dim url
Dim listurl
Dim Result
Dim UniqueID
Dim FirstName
Dim LastName
Dim EmailAddress
' Set Values
isMemberURL = "http://www.sunion.warwick.ac.uk/membershipapi/ismember/"
listMembersURL = "http://www.sunion.warwick.ac.uk/membershipapi/listmembers/"
Key = "1234ab56-78cd-90e0-1324-fa56bcde7f8a"
' For an isMember call we need the Person's key
' This would normally be entered by the user or called from your database
PersonKey = "123ab456"
'=========================================
'
' Checking if a person is a current member
'
'=========================================
' Set the url as defined in the API
url = isMemberURL & Key & "/" & PersonKey
Response.Write "<p>Is member: " & isMember(url,PersonKey) & "</p>"
Response.Write "<p>Is Exec member: " & isExecMember(url,PersonKey) & "</p>"
Result = getMemberDetails(url,FirstName,LastName,UniqueID,EmailAddress)
response.write "<br />First Name: " & FirstName
response.write "<br />Last Name: " & LastName
response.write "<br />Email Address: " & EmailAddress
response.write "<br />Unique ID: " & UniqueID
response.write "<br />XML Returned: <pre>" & Replace(Replace(Result,"<",vbCrLf & "<"),">",">" & vbCrLf) & "</pre>"
'=========================================
'
' Getting a list of members
'
' This example demonstrates loading the xml into a recordset
' and then displying it (rather crudely...)
' You would normally want to use the returned xml natively
' either to run REGULAR updates on your own database
' or display a list of current members
'=========================================
listurl = listMembersURL & Key & "/"
Dim xmlhttp
Dim source
set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
xmlhttp.Open "GET", listurl, false
xmlhttp.Send
set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.loadxml(xmlhttp.ResponseText)
Const adVarChar = 200
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Fields.Append "FirstName", adVarChar, 200
rs.Fields.Append "LastName", adVarChar, 200
rs.Fields.Append "UniqueID", adVarChar, 50
rs.Fields.Append "EmailAddress", adVarChar, 200
rs.Open
Set MemberNodes = source.documentElement.getElementsByTagName("Member")
FOR Each MemberNode in MemberNodes
rs.AddNew
rs("FirstName") = MemberNode.selectSingleNode("FirstName").Text
rs("LastName") = MemberNode.selectSingleNode("LastName").Text
rs("UniqueID") = MemberNode.selectSingleNode("UniqueID").Text
rs("EmailAddress") = MemberNode.selectSingleNode("EmailAddress").Text
rs.Update
NEXT
rs.MoveFirst
Response.Write "<table><thead><tr><th>First Name</th><th>Last Name</th><th>Unique ID</th><th>Email Address</th></thead><tbody>"
DO WHILE NOT rs.EOF
Response.Write "<tr><td>" & rs("FirstName") & "</td>"
Response.Write "<td>" & rs("LastName") & "</td>"
Response.Write "<td>" & rs("UniqueID") & "</td>"
Response.Write "<td>" & rs("EmailAddress") & "</td></tr>"
rs.MoveNext
LOOP
Response.Write "</tbody></table>"
Function isMember(url,PersonKey)
Dim xmlhttp
Dim source
set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
xmlhttp.Open "GET", url, false
xmlhttp.Send
set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.loadxml(xmlhttp.ResponseText)
isMember = CBool(source.documentElement.selectSingleNode("isMember").Text)
END Function
Function isExecMember(url,PersonKey)
Dim xmlhttp
Dim source
set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
xmlhttp.Open "GET", url, false
xmlhttp.Send
set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.loadxml(xmlhttp.ResponseText)
isExecMember = CBool(source.documentElement.selectSingleNode("isExecMember").Text)
END Function
Function getMemberDetails(url,FirstName,LastName,UniqueID,EmailAddress)
Dim xmlhttp
Dim source
set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
xmlhttp.Open "GET", url, false
xmlhttp.Send
set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.loadxml(xmlhttp.ResponseText)
Set MemberDetailsNodes = source.documentElement.selectSingleNode("MemberDetails")
FirstName = MemberDetailsNodes.selectSingleNode("FirstName").Text
LastName = MemberDetailsNodes.selectSingleNode("LastName").Text
UniqueID = MemberDetailsNodes.selectSingleNode("UniqueID").Text
EmailAddress = MemberDetailsNodes.selectSingleNode("EmailAddress").Text
getMemberDetails = xmlhttp.ResponseText
END Function
%>