I found the following information on this site, but I am unable to get it to work. All it brings back is the xml page with no data. I am running a Windows 2003 Server with Exchange 2003 Server.
When the code gets to This line..
If objDoc.loadXml( objRequest.Resp onseText) Then
The results return False and I don't receive any data. Does anyone know what the problem may be?
Re: ASP: Exchange 2003 Free/Busy Lookup
--------------------------------------------------------------------------------
I have figured this out myself. The problem was with Anonymous access being
disabled within the IIS for the public folder. Once I enabled this I was
able to retrieve an XML file of the specified users free/busy status.
Also the code I was using was for exchange2000 and not 2003, this brought
back a HTML formatted page of the specified users free/busy status. Once I
used the 2003 code this brought back an XML file.
I hope this helps someone else out.
"Andy" wrote:
Quote:
Originally Posted by
Hi,
>
I'm trying to get a users free/busy status from exchange from within a
website and
using the code below, but when I run this a login page from MS Outlook Web
Access is retrieved from the server rather than a XML file containing the
users free/busy status for the specified time period.
>
I've spent all day looking for solutions to this but I'm stumped. I have
been looking for an Exchange newsgroup but there doesn't seam to be one, does
anyone know if i can post this some where else to get a response from an
Exchange expert.
>
The Server is 2003, with Exchange 2003.
>
Any help would be very much appreciated!
>
Code being run is shown below and was modified from the following location:
http://msdn.microsoft. com/library/d...status_http .asp
>
<%
' Initialize variables.
' The public folder server that contains the user's free/busy information.
strServer = "?????????? ??"
>
' The user's e-mail address.
strUser = "andy.long@???? ????????.co.uk"
>
' Build the URL with the freebusy command. Specify a start date/time of
' 08:00 (UTC) 27 Sep 2004, an end date/time of 20:00 (UTC) 27 Sep 2004, an
' interval of 60 minutes, and the e-mail address of the user. Multiple
' e-mail addresses can be specified by appending one or more
' "&u=SMTP:user@e xample.com" command parameter values to the URL string.
strUrl="https://" & strServer & "/public/?cmd=freebusy" & _
"&start=200 6-10-24T08:00:00Z" & _
"&end=2006-10-24T20:00:00Z" & _
"&interval= 60" & _
"&u=SMTP:" & strUser ' & "&u=SMTP:user2@ example.com"
>
' Initialize the XMLHTTP object.
set objRequest=crea teobject("Msxml 2.ServerXMLHTTP ")
>
' Open the request object with the GET method and
' specify that it will be sent asynchronously.
objRequest.open "GET", strUrl, false
>
' Set the Content-Type header.
objRequest.setR equestHeader "Content-Type", "text/xml"
>
' Set the Content-Length header.
objRequest.setR equestHeader "Content-Length", 0
>
' Set the Accept-language header.
objRequest.setR equestHeader "Accept-Language", "en-us"
>
' Send the GET method request.
objRequest.send
>
' The request was successful.
If 200 = objRequest.stat us Then
' Uncomment this line to see the XML response.
response.write( objRequest.resp onsetext)
>
' Create the DOM document.
Set objDoc = createobject("m sxml2.domdocume nt")
>
' Load the XML response body.
If objDoc.loadXml( objRequest.Resp onseText) Then
>
' Build a list of the WM:item XML nodes, corresponding to the
' returned user and free/busy information of the freebusy
' command. The WM: namespace is typically assigned the a: prefix
' in the XML response body. The namespaces and their associated
' prefixes are located in the attributes of the WM:response node
' of the XML response.
Set objNodeList=obj Doc.selectNodes ("//a:item")
>
' Iterate through the WM:item nodes.
For Each objItemNode In objNodeList
>
' Use an XPath query to get the WM:displayname node
' from the WM:item node.
set objDisplayNode = objItemNode.sel ectSingleNode(" a:displayname")
>
' Use an XPath query to get the WM:fbdata node
' from the WM:item node.
set objFBNode = objItemNode.sel ectSingleNode(" a:fbdata")
>
' Display free/busy information.
response.write( "Display name: " & objDisplayNode. Text)
response.write( "Free/busy data: " & objFBNode.Text)
response.write( "<br>")
Next
End If
>
Else
response.write( objRequest.stat us & " " & objRequest.stat ustext)
End if
>
' Clean up.
Set objRequest = nothing
Set objDoc = nothing
%>
When the code gets to This line..
If objDoc.loadXml( objRequest.Resp onseText) Then
The results return False and I don't receive any data. Does anyone know what the problem may be?
Re: ASP: Exchange 2003 Free/Busy Lookup
--------------------------------------------------------------------------------
I have figured this out myself. The problem was with Anonymous access being
disabled within the IIS for the public folder. Once I enabled this I was
able to retrieve an XML file of the specified users free/busy status.
Also the code I was using was for exchange2000 and not 2003, this brought
back a HTML formatted page of the specified users free/busy status. Once I
used the 2003 code this brought back an XML file.
I hope this helps someone else out.
"Andy" wrote:
Quote:
Originally Posted by
Hi,
>
I'm trying to get a users free/busy status from exchange from within a
website and
using the code below, but when I run this a login page from MS Outlook Web
Access is retrieved from the server rather than a XML file containing the
users free/busy status for the specified time period.
>
I've spent all day looking for solutions to this but I'm stumped. I have
been looking for an Exchange newsgroup but there doesn't seam to be one, does
anyone know if i can post this some where else to get a response from an
Exchange expert.
>
The Server is 2003, with Exchange 2003.
>
Any help would be very much appreciated!
>
Code being run is shown below and was modified from the following location:
http://msdn.microsoft. com/library/d...status_http .asp
>
<%
' Initialize variables.
' The public folder server that contains the user's free/busy information.
strServer = "?????????? ??"
>
' The user's e-mail address.
strUser = "andy.long@???? ????????.co.uk"
>
' Build the URL with the freebusy command. Specify a start date/time of
' 08:00 (UTC) 27 Sep 2004, an end date/time of 20:00 (UTC) 27 Sep 2004, an
' interval of 60 minutes, and the e-mail address of the user. Multiple
' e-mail addresses can be specified by appending one or more
' "&u=SMTP:user@e xample.com" command parameter values to the URL string.
strUrl="https://" & strServer & "/public/?cmd=freebusy" & _
"&start=200 6-10-24T08:00:00Z" & _
"&end=2006-10-24T20:00:00Z" & _
"&interval= 60" & _
"&u=SMTP:" & strUser ' & "&u=SMTP:user2@ example.com"
>
' Initialize the XMLHTTP object.
set objRequest=crea teobject("Msxml 2.ServerXMLHTTP ")
>
' Open the request object with the GET method and
' specify that it will be sent asynchronously.
objRequest.open "GET", strUrl, false
>
' Set the Content-Type header.
objRequest.setR equestHeader "Content-Type", "text/xml"
>
' Set the Content-Length header.
objRequest.setR equestHeader "Content-Length", 0
>
' Set the Accept-language header.
objRequest.setR equestHeader "Accept-Language", "en-us"
>
' Send the GET method request.
objRequest.send
>
' The request was successful.
If 200 = objRequest.stat us Then
' Uncomment this line to see the XML response.
response.write( objRequest.resp onsetext)
>
' Create the DOM document.
Set objDoc = createobject("m sxml2.domdocume nt")
>
' Load the XML response body.
If objDoc.loadXml( objRequest.Resp onseText) Then
>
' Build a list of the WM:item XML nodes, corresponding to the
' returned user and free/busy information of the freebusy
' command. The WM: namespace is typically assigned the a: prefix
' in the XML response body. The namespaces and their associated
' prefixes are located in the attributes of the WM:response node
' of the XML response.
Set objNodeList=obj Doc.selectNodes ("//a:item")
>
' Iterate through the WM:item nodes.
For Each objItemNode In objNodeList
>
' Use an XPath query to get the WM:displayname node
' from the WM:item node.
set objDisplayNode = objItemNode.sel ectSingleNode(" a:displayname")
>
' Use an XPath query to get the WM:fbdata node
' from the WM:item node.
set objFBNode = objItemNode.sel ectSingleNode(" a:fbdata")
>
' Display free/busy information.
response.write( "Display name: " & objDisplayNode. Text)
response.write( "Free/busy data: " & objFBNode.Text)
response.write( "<br>")
Next
End If
>
Else
response.write( objRequest.stat us & " " & objRequest.stat ustext)
End if
>
' Clean up.
Set objRequest = nothing
Set objDoc = nothing
%>