🌍
English
Hey, im trying to login to the API and pull images and desciptions into TYPO3 frontend.
it kinda works for public categories and images.
i get positive response from login in PHP
{"stat":"ok","result":true}
http://dev.sam-net.de/index.php?id=1
How can i login to the API using PHP and pulling images und categories ?
My script:
<?php require_once(PATH_tslib.'class.tslib_pibase.php'); class user_piwigoConnect { var $cObj; // BACK REFS UPPER cObj /** * CALL FUNCTION */ function main($content,$conf){ // LOGIN TO PIWIGO $url = $conf['url'] . 'ws.php?format=json'; $postData = array(); $postData['method'] = 'pwg.session.login'; $postData['username'] = $conf['user']; $postData['password'] = $conf['password']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); $resultLogin = curl_exec($ch); curl_close($ch); // GET URL PARAMS $get_vars = t3lib_div::_GET(); // INCLUDE DYNAMIC JS $script .= " <script type='text/javascript'> </script> " . print_r($postData); $getCat = file_get_contents("http://neu.lacordee-bildarchiv.de/ws.php?format=json&method=pwg.categories.getList"); $catsJson = json_decode($getCat, true); $categories = ''; foreach ($catsJson['result']['categories'] as $item) { $id = $item['id']; $catName = $item['name']; if($item['comment'] == null) { $comment = ''; } else { $comment = '<br>' . $item['comment']; } $categories .= '<br>' . $id . ' ######## ' . $catName; } $getImages = file_get_contents("http://neu.lacordee-bildarchiv.de/ws.php?format=json&method=pwg.categories.getImages&recursive=false&cat_id=84"); $login = json_decode($resultLogin); $content .= $resultLogin; if($login->{'stat'} == 'fail') { $loginMsg = 'Login Fehler, prüfen Sie die Zugangsdaten!'; } else if($login->{'stat'} == 'ok') { $imagesJson = json_decode($getImages, true); $images = $login->{'stat'} . $conf['catDefault'] . ''; foreach ($imagesJson['result']['images']['_content'] as $item) { $image = $item['derivatives']['square']['url']; $width = $item['derivatives']['square']['width']; $height = $item['derivatives']['square']['height']; $imageHd = $item['derivatives']['xlarge']['url']; $imageHdWidth = $item['derivatives']['xlarge']['width'] + 20; $imageHdHeight = $item['derivatives']['xlarge']['height'] + 20; if($item['comment'] == null) { $comment = ''; } else { $comment = '<br>' . $item['comment']; } $images .= '<div class="image" style="width: ' . $width . 'px">'; $images .= '<a title="<b>' . $item['name'] . '</b>' . $comment . '" href="' . $imageHd . '" rel="shadowbox[piwigo];width=' . $imageHdWidth . ';height=' . $imageHdHeight . '"><img src="' . $image . '" width="' . $width . '" height="' . $height . '"/></a>'; $images .= '<div class="caption">' . $item['name'] . '</div>'; $images .= '</div>'; } } $content.= $script . $get_vars['piwigoCat'] . $loginMsg . '<div id="piwigo">' . $images . '</div>' . $categories . $getCat; return $content; } } ?>
Thanks,
polly
Offline
Hey....
this does the Job:
// SET $CONF AS VARIABLE $user = $conf['user']; $password = $conf['password']; $siteUrl = $conf['url']; $catDefault = $conf['catDefault']; $browserCatCount = $conf['catCount']; $browserImageCount = $conf['imageCount']; $browserCatCount = $conf['catCount']; // LOGIN TO PIWIGO $url= $siteUrl . "ws.php?format=json"; $postdata = "method=pwg.session.login&username=" . $user . "&password=" . $password; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); curl_setopt($ch, CURLOPT_POST, 1); $resultLogin = curl_exec($ch); preg_match_all('|Set-Cookie: (.*);|U', $resultLogin, $results); $cookies = $results[1][2];
Offline