[php/xml] contacts vanuit exchange server naar xml

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hallo,

ik wil de contactpersonen van een ms exchange server useraccount exporteren naar een xml bestand om deze vervolgens in te kunnen lezen een een grandstream ip telefoon als adresboek.

het laatste deel lukt me.. alleen het uitlezen van de contactpersonen uit exchange krijg ik niet voor elkaar..

iemand een idee waar ik kan beginnen? heb wat op google rondgesnuffeld maar geen nuttige resultaten..

mijn voorkeur gaat er naar uit om het in php te maken zodat ik realtime een xml kan genereren..

Acties:
  • 0 Henk 'm!

  • JasperE
  • Registratie: December 2003
  • Laatst online: 11-09 18:26
Misschien dat deze pagina je verder helpt:
http://www.troywolf.com/a...hange_webdav_examples.php

(Ik heb deze methode gebruikt om de exchange gezamenlijke agenda van de dag op intraweb weer te geven, maar contacts kun je er ook mee uitlezen.)

[ Voor 14% gewijzigd door JasperE op 09-08-2008 16:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
JasperE schreef op zaterdag 09 augustus 2008 @ 16:49:
Misschien dat deze pagina je verder helpt:
http://www.troywolf.com/a...hange_webdav_examples.php

(Ik heb deze methode gebruikt om de exchange gezamenlijke agenda van de dag op intraweb weer te geven, maar contacts kun je er ook mee uitlezen.)
die vond ik inderdaad ook al maar ik krijg een foutmelding daarop..

zie: http://www.huizinga.nl/test/contacts.php

als ik verder zoek zie ik een melding "440 Login Timeout"

enig idee hoe ik die kan verhelpen?

source: http://www.huizinga.nl/test/contacts.phps

Acties:
  • 0 Henk 'm!

  • JasperE
  • Registratie: December 2003
  • Laatst online: 11-09 18:26
All http ipv https geprobeerd?
Is webdav wel geinstalleerd op je exchange server?
Bestaat de map "/public/Customer%20Contacts" wel op je server?? (lijkt me sterk)

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Eeh, je code dumpen, roepen wat er mis gaat en hopen dat wij het voor je gaan oplossen is hier niet de bedoeling. Dus wat heb he zelf al geprobreerd om de timeout op te lossen? Wat lukte daar niet mee? Zie ook Programming Beleid - De Quickstart

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op zaterdag 09 augustus 2008 @ 20:49:
Eeh, je code dumpen, roepen wat er mis gaat en hopen dat wij het voor je gaan oplossen is hier niet de bedoeling. Dus wat heb he zelf al geprobreerd om de timeout op te lossen? Wat lukte daar niet mee? Zie ook Programming Beleid - De Quickstart
ik had uiteraard al vanalles geprobeerd maar zonder resultaat..

de timeout is inmiddels opgelost. dit lag aan de manier van authorisatie (cookie of http)

nu krijg ik deze melding
http://www.huizinga.nl/test/example.php

source:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php

// Modify the paths to these class files as needed.
require_once("class_http.php");
require_once("class_xml.php");

// Change these values for your Exchange Server.
$exchange_server = "https://server.huizingalan.nl";
$exchange_username = "xx";
$exchange_password = "xx";

// We use Troy's http class object to send the XML-formatted WebDAV request
// to the Exchange Server and to receive the response from the Exchange Server.
// The response is also XML-formatted.
$h = new http();

$h->headers["Content-Type"] = 'text/xml; charset="UTF-8"';

// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_webdav_depth_header.asp
$h->headers["Depth"] = "0";

$h->headers["Translate"] = "f";

// The trickiest part is forming your WebDAV query. This example shows how to
// find all the folders in the inbox for a user named 'twolf'.
$h->xmlrequest = '<?xml version="1.0"?>';
$h->xmlrequest .= <<<END
<a:searchrequest xmlns:a="DAV:" xmlns:s="http://schemas.microsoft.com/exchange/security/">
   <a:sql>
       SELECT "DAV:displayname"
       FROM SCOPE('hierarchical traversal of "$exchange_server/exchange_xml/bas/inbox/"')
   </a:sql>
</a:searchrequest>
END;
// IMPORTANT -- The END line above must be completely left-aligned. No white-space.

// The 'fetch' method does the work of sending and receiving the request.
// NOTICE the last parameter passed--'SEARCH' in this example. That is the
// HTTP verb that you must correctly set according to the type of WebDAV request
// you are making.  The examples on this page use either 'PROPFIND' or 'SEARCH'.
if (!$h->fetch($exchange_server."/exchange_xml/bas/inbox/", 0, null, $exchange_username, $exchange_password, "SEARCH")) {
  echo "<h2>There is a problem with the http request!</h2>";
  echo $h->log;
  echo $h->body;
  exit();
}

// Note: The following lines can be uncommented to aid in debugging.
#echo "<pre>".$h->log."</pre><hr />\n";
#echo "<pre>".$h->header."</pre><hr />\n";
#echo "<pre>".$h->body."</pre><hr />\n";
#exit();
// Or, these next lines will display the result as an XML doc in the browser.
#header('Content-type: text/xml');
#echo $h->body;
#exit();

// The assumption now is that we've got an XML result back from the Exchange
// Server, so let's parse the XML into an object we can more easily access.
// For this task, we'll use Troy's xml class object.
$x = new xml();
if (!$x->fetch($h->body)) {
    echo "<h2>There was a problem parsing your XML!</h2>";
    echo "<pre>".$h->log."</pre><hr />\n";
    echo "<pre>".$h->header."</pre><hr />\n";
    echo "<pre>".$h->body."</pre><hr />\n";
    echo "<pre>".$x->log."</pre><hr />\n";
    exit();
}

// You should now have an object that is an array of objects and arrays that
// makes it easy to access the parts you need. These next lines can be
// uncommented to make a raw display of the data object.
print "<hr color=red>";
print_r( $x->data->A_MULTISTATUS[0]->A_RESPONSE);
print "<hr color=red>";
// And finally, an example of iterating the inbox folder names and url's to
// display in the browser. I also show you 2 methods to link to the folders.
// One uses the href provided in the response which opens the folder using OWA.
// The other is an Outlook style link to open the folder in the Outlook desktop
// client.

echo '<table border="1">';
foreach($x->data->A_MULTISTATUS[0]->A_RESPONSE as $idx=>$item) {
    echo '<tr>'
        .'<td>'.$item->A_PROPSTAT[0]->A_PROP[0]->A_DISPLAYNAME[0]->_text.'</td>'
        .'<td><a href="'.$item->A_HREF[0]->_text.'">Click to open via OWA</a></td>'
        .'<td><a href="Outlook:Inbox/'.$item->A_PROPSTAT[0]->A_PROP[0]->A_DISPLAYNAME[0]->_text.'">Click to open via Outlook</a></td>'
        ."</tr>\n";
}
echo "<table>\n";

?> 


Heeft iemand enig idee/tips om mij verder te helpen? ik zou haast denken dat het url niet klopt van regel 31 of 41.. maar dit is gewoon bereikbaar via een webbrowser..

Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
Ik zie in regel 8 dat je https gebruikt om je server te benaderen. Zeker weten dat dat goed gaat? Vervang hem eens door gewoon http? :)

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
https://server.huizingalan.nl

Geeft mij
code:
1
2
3
4
5
6
7
8
9
10
Er is een probleem met het beveiligingscertificaat van deze website. 
 
   
 Het beveiligingscertificaat dat door deze website wordt gebruikt, is niet verleend door een vertrouwde certificeringsinstantie.

Problemen met beveiligingscertificaten kunnen duiden op een poging om u informatie te ontfutselen of om informatie die u naar de server verzendt, te onderscheppen.  
  U wordt aangeraden om deze webpagina te sluiten en niet naar deze webpagina te gaan.  
  Klik hier als u deze webpagina wilt sluiten.  
  Doorgaan naar deze website (niet aanbevolen).  
     Meer informatie

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
spone schreef op dinsdag 12 augustus 2008 @ 12:45:
Ik zie in regel 8 dat je https gebruikt om je server te benaderen. Zeker weten dat dat goed gaat? Vervang hem eens door gewoon http? :)
http en https geven hetzelfde resultaat.. dit had ik uiteraard al geprobeerd.. toch bedankt voor de tip..
r0bert schreef op dinsdag 12 augustus 2008 @ 12:47:
https://server.huizingalan.nl

Geeft mij
code:
1
2
3
4
5
6
7
8
9
10
Er is een probleem met het beveiligingscertificaat van deze website. 
 
   
 Het beveiligingscertificaat dat door deze website wordt gebruikt, is niet verleend door een vertrouwde certificeringsinstantie.

Problemen met beveiligingscertificaten kunnen duiden op een poging om u informatie te ontfutselen of om informatie die u naar de server verzendt, te onderscheppen.  
  U wordt aangeraden om deze webpagina te sluiten en niet naar deze webpagina te gaan.  
  Klik hier als u deze webpagina wilt sluiten.  
  Doorgaan naar deze website (niet aanbevolen).  
     Meer informatie
klopt.. er zit een self signed certificaat in.. maar dat kan haast niet het probleem opleveren omdat het op http (zonder de S) hetzelfde resultaat/probleem opleverd..

Acties:
  • 0 Henk 'm!

Verwijderd

Blijkbaar komt er geen juiste XML terug, kun je niet die XML even outputten voordat je daar verder gaat?

edit: line 54-56 in bovenstaande code heb ik het over trouwens (eventueel al vanaf 48 meepakken)
edit2: klopt dat pad naar je inbox/contactpersonen wel?

[ Voor 45% gewijzigd door Verwijderd op 12-08-2008 12:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 12 augustus 2008 @ 12:55:
Blijkbaar komt er geen juiste XML terug, kun je niet die XML even outputten voordat je daar verder gaat?

edit: line 54-56 in bovenstaande code heb ik het over trouwens (eventueel al vanaf 48 meepakken)
edit2: klopt dat pad naar je inbox/contactpersonen wel?
ik heb regel 55-56 aangezet en krijg dit:
"HTTP/1.0 500 Internal Server Error"

de paden naar de inbox en contacts folder kloppen wel.. (zit een ip filter op om te voorkomen dat iedereen in mijn account kan komen nu ik er nog mee aan het rommelen ben)

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Doe eens "Friendly Http Errors' uitzetten in Internet Explorer. Tevens zou ik ook even in een Errorlog van eender welke serversoftware neuzen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TeeDee schreef op dinsdag 12 augustus 2008 @ 17:05:
Doe eens "Friendly Http Errors' uitzetten in Internet Explorer. Tevens zou ik ook even in een Errorlog van eender welke serversoftware neuzen.
ik krijg nu een 404

HTTP Error 404 - File or directory not found.
Internet Information Services (IIS)

in de logs van IIS is niets te vinden..

Ik gebruik overigens Firefox... maar dat zal niets uitmaken.. in IE krijg ik dezelfde melding..

Acties:
  • 0 Henk 'm!

Verwijderd

Zoals ik al zei, weet je zeker dat het pad naar die inbox/contactpersonen klopt? Vind het wat opvallen dat het eindigt op een '/', dat lijkt me niet echt heel logisch.
Pagina: 1