Bestanden uploaden naar sharepoint dmv php?
Dat zou je gewoon normaal op je scherm moeten krijgen dan, tenzij je wat fout doet.
Daar had ik net even gekeken om te zien wat je precies bedoelde :)
Ik heb die setting verwijzing in de code weg gehaald en manueel alles ingevuld van link en username en password en nu krijg ik dit te zien.:
weet nu niet of dat die var toont of dat het dien link is wat hij zou moeten printen, maar het is tenminste al iets :) Je was mij voor dus nu even opnieuw proberen :)
Als je volgende keer weer een var_dump hier plaatst, gooi er wat enter in zodat we niet lang hoeven te scrollen ;). Ik ben niet bekend met Sharepoint, maar ik zie toch iets van een token over de lijn gaan. Dus er lijkt wel iets te gebeuren. Je kan even goed verder debuggen met var_dump op de daaropvolgende variabelen.
Denk alleen dat die catch niet correct is want als ik het wachtwoord verander zou volgens de code Authentication failed moeten komen maar dan krijg ik weer error 500 fout.
Toevoeging op 10/07/2020 22:00:03:
Gevonden, even opgezocht bij php7.: On PHP >= 7, most fatal errors are reported not by raising an error, but by throwing an Error object.
Furthermore, both Error and Exception classes implement the Throwable interface, so you could catching that directly:
Dus heb ik het nu zo werkend.:
Nu is inloggen enz werkend, tenminste de Autorisatie.
Op naar proberen een bestand te downloaden, zal dit in deze topic verder aanhouden met eventuele vragen of problemen. Zal ik doen, blijkt dus toch dat die var die grote tekst laat zien want haal ik die weg krijg ik een link te zien wat ook volgens die print zou moeten komen.
De "$e" die je probeerde te vangen was dan blijkbaar niet van de klasse Exception, of een klasse die daarvan is afgeleid. Maar om nu terug te vallen op Throwable is volgens mij niet heel erg netjes.
Je zou voor de gein eens kunnen kijken van welke klasse $e is met behulp van get_class() en dan eens kijken of dat niet netter geprogrammeerd kan worden (door het indienen van een ticket ofzo).
EDIT: te meer omdat hun eigen example dus blijkbaar niet (meer) werkt. Mja, een niet-gevangen exception resulteert altijd in een Fatal Error.
Na lang spitten op internet heb ik een betere oplossing gevonden, namelijk RClone.
Hiermee kun je in principe alles doen op meer als 20 verschillende drives zoals Google drive, sharepoint, onedrive en meer. Aangezien er meer mensen zijn, die wellicht hiervan gebruik willen maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
try {
$ctx = ClientContext::connectWithUserCredentials($settings['Url'], $settings['UserName'], $settings['Password']);
var_dump($ctx);
//$ctx = ClientContext::connectWithClientCredentials($Settings['Url'], $Settings['ClientId'], $Settings['ClientSecret']);
$site = $ctx->getSite();
$ctx->load($site); //load site settings
$ctx->executeQuery();
print $site->getUrl();
}
catch (Exception $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
}
$ctx = ClientContext::connectWithUserCredentials($settings['Url'], $settings['UserName'], $settings['Password']);
var_dump($ctx);
//$ctx = ClientContext::connectWithClientCredentials($Settings['Url'], $Settings['ClientId'], $Settings['ClientSecret']);
$site = $ctx->getSite();
$ctx->load($site); //load site settings
$ctx->executeQuery();
print $site->getUrl();
}
catch (Exception $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
}
En wat komt daar uit?
500 fout
Lekker duidelijk inderdaad!
Ik heb die setting verwijzing in de code weg gehaald en manueel alles ingevuld van link en username en password en nu krijg ik dit te zien.:
Code (php)
1
object(Office365\SharePoint\ClientContext)#8 (8) { ["site":"Office365\SharePoint\ClientContext":private]=> NULL ["web":"Office365\SharePoint\ClientContext":private]=> NULL ["contextWebInformation":"Office365\SharePoint\ClientContext":private]=> NULL ["pendingRequest":"Office365\SharePoint\ClientContext":private]=> NULL ["serviceRootUrl":"Office365\Runtime\ClientRuntimeContext":private]=> string(50) "https://qcpbv.sharepoint.com/sites/Logboeken/_api/" ["version":"Office365\Runtime\ClientRuntimeContext":private]=> string(4) "v1.0" ["authContext":"Office365\Runtime\ClientRuntimeContext":private]=> object(Office365\Runtime\Auth\AuthenticationContext)#3 (2) { ["provider":"Office365\Runtime\Auth\AuthenticationContext":private]=> object(Office365\Runtime\Auth\SamlTokenProvider)#2 (5) { ["usingFederatedSTS":protected]=> bool(false) ["authorityUrl":protected]=> string(44) "https://qcpbv.sharepoint.com/sites/Logboeken" ["FedAuth":"Office365\Runtime\Auth\SamlTokenProvider":private]=> string(924) "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48U1A+VjgsMGguZnxtZW1iZXJzaGlwfDEwMDMyMDAwYzUzMTJjYjlAbGl2ZS5jb20sMCMuZnxtZW1iZXJzaGlwfHJwaXNlcnZlckBxY3BvbHltZXJzLmNvbSwxMzIzODg4MjI4MjAwMDAwMDAsMTMyMzU2NDczNzEwMDAwMDAwLDEzMjM4OTY4NjgzMTk5NjMyNCwwLjAuMC4wLDIsY2VlMmQ5MTMtNDE3YS00ODM0LWI5Y2YtMTBjNDJhNmQwZjY4LCwsNjljNTY0OWYtMTBlNy0yMDAwLTI5OTctMDUyZTdhYTlhZGQ1LDY5YzU2NDlmLTEwZTctMjAwMC0yOTk3LTA1MmU3YWE5YWRkNSwsMCwwLDAsLCwsMjY1MDQ2Nzc0Mzk5OTk5OTk5OSwwLCxsek1wSlNQVngwZ0hQSS8vNTE5cm45c0JzcElQdFRXZ2xoNjlWa3ZIZmJvckdxRFhzaE00dW5zaEhTMk5uWVNQYUY5OXJYV3pKd0ZSdVlPa0dwUGVKMmVvSldCeXAySmM2VVQvbisxSktXUGhxUHhaaVJsMk9CTWovQWZYNFN2L1VSUVovOGliZEltSFBMc014VVVzaGNNQmpibEt0aVBsaG9DYktQYUppWlRidVRzbXBXNVJWWjJsY0tac3NsNFZMYlU0cnZlTGg3SUdpQmthUndnVGw3UmtrcW5GYWIwQWxDdTNkOXN3ejFCTVVpb3FkWFZPbWtYTE4wWlYyZmdMOHU2ZnNwdWZpZnI3eUFTUkNyYytDRUplRlQ0OFhmMzBlVHJ1eENnRDJiM1pZaWY5cWdzUVNEQ1pvakc1NXBPNUpndE0yV2d5cEhWL05LVmJ1TFlTQmc9PTwvU1A+" ["rtFa":"Office365\Runtime\Auth\SamlTokenProvider":private]=> string(440) "ZY2TE+Bs7W5tVn7XX8qpqzQNpKGFtTGAz3kizTAOVMEmQ0VFMkQ5MTMtNDE3QS00ODM0LUI5Q0YtMTBDNDJBNkQwRjY4GR8CHJuEzWVEOQ9aH+DHsGKt6QLOxuB393BpPqlZu7zoltrcSvvceTHxdiMsEXNuE2M3Wd8Eev17E7asNIQ5JMNpUn/LJZCYsKsx2pl/s/S5DpBk+N9N7nIdCBCyzeR/Z+yuzA4Q5oGdKHvd/6g/+ENr8h/Lx/on/iZhL4BXDuwc02KxosgQjzcbR38wOYCCjim/3pXw9IV5+6mf+rL4BgfvaQu7kZQiaymQaPF9Op68vFGVv/jgMeVJNw7INKsQvukdHg+ugenNIoLJ8EqEP7jc5lQGTwPAz/ffJ765aH83D+5Fp+W0zpuc+uKyqVP+20MVW6qCEwx4tlZDjGemIEUAAAA=" ["SPOIDCRL":"Office365\Runtime\Auth\SamlTokenProvider":private]=> NULL } ["authorityUrl":"Office365\Runtime\Auth\AuthenticationContext":private]=> string(44) "https://qcpbv.sharepoint.com/sites/Logboeken" } ["RequestSchemaVersion"]=> NULL } https://qcpbv.sharepoint.com/sites/Logboeken
weet nu niet of dat die var toont of dat het dien link is wat hij zou moeten printen, maar het is tenminste al iets :)
Gewijzigd op 10/07/2020 21:23:13 door Pascal Schuffelers
Als je volgende keer weer een var_dump hier plaatst, gooi er wat enter in zodat we niet lang hoeven te scrollen ;).
Denk alleen dat die catch niet correct is want als ik het wachtwoord verander zou volgens de code Authentication failed moeten komen maar dan krijg ik weer error 500 fout.
Toevoeging op 10/07/2020 22:00:03:
Gevonden, even opgezocht bij php7.: On PHP >= 7, most fatal errors are reported not by raising an error, but by throwing an Error object.
Furthermore, both Error and Exception classes implement the Throwable interface, so you could catching that directly:
Dus heb ik het nu zo werkend.:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
try {
$ctx = ClientContext::connectWithUserCredentials('https://xxxxx.sharepoint.com/sites/xxxxx', 'xxxxxx', 'xxxxxxx');
// var_dump($ctx);
//$ctx = ClientContext::connectWithClientCredentials($Settings['Url'], $Settings['ClientId'], $Settings['ClientSecret']);
$site = $ctx->getSite();
$ctx->load($site); //load site settings
$ctx->executeQuery();
print $site->getUrl();
}
catch (\Throwable $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
}
$ctx = ClientContext::connectWithUserCredentials('https://xxxxx.sharepoint.com/sites/xxxxx', 'xxxxxx', 'xxxxxxx');
// var_dump($ctx);
//$ctx = ClientContext::connectWithClientCredentials($Settings['Url'], $Settings['ClientId'], $Settings['ClientSecret']);
$site = $ctx->getSite();
$ctx->load($site); //load site settings
$ctx->executeQuery();
print $site->getUrl();
}
catch (\Throwable $e) {
echo 'Authentication failed: ', $e->getMessage(), "\n";
}
Nu is inloggen enz werkend, tenminste de Autorisatie.
Op naar proberen een bestand te downloaden, zal dit in deze topic verder aanhouden met eventuele vragen of problemen.
Gewijzigd op 10/07/2020 22:01:09 door Pascal Schuffelers
De "$e" die je probeerde te vangen was dan blijkbaar niet van de klasse Exception, of een klasse die daarvan is afgeleid. Maar om nu terug te vallen op Throwable is volgens mij niet heel erg netjes.
Je zou voor de gein eens kunnen kijken van welke klasse $e is met behulp van get_class() en dan eens kijken of dat niet netter geprogrammeerd kan worden (door het indienen van een ticket ofzo).
EDIT: te meer omdat hun eigen example dus blijkbaar niet (meer) werkt.
Gewijzigd op 10/07/2020 22:21:29 door Thomas van den Heuvel
Na lang spitten op internet heb ik een betere oplossing gevonden, namelijk RClone.
Hiermee kun je in principe alles doen op meer als 20 verschillende drives zoals Google drive, sharepoint, onedrive en meer.