Wczoraj opisałem
wykorzystanie Zoho Remote API w Pythonie z pomocą biblioteki pycurl. Dzisiaj zaprezentuję przykładowe skrypty PHP wykorzystujące wspomniane API usług zoho.com. Za pomocą Remote API możemy na własnej stronie internetowej wyświetlać i edytować dokumenty biurowe (prezentacje, arkusze, dokumenty tekstowe) za pomocą zdalnych edytorów Zoho. W tym celu należy wysłać dokument i odpowiednie dane na podany adres URL API danego edytora. Warto też zapoznać się z artykułem
Przegląd możliwości Zoho API i Zoho CloudSQL.
- By korzystać z Remote API potrzebujemy wygenerować klucz API ("darmowa" rejestracja)
- Potrzebujemy także PHP z obsługą biblioteki CURL. Większość hostingów powinna pozwalać na bezproblemowe korzystanie z tej biblioteki (sprawdź w phpinfo jej obecność)
Oto przykładowy skrypt otwierający dokument znajdujący się na naszym serwerze w edytorze Zoho Writer:
<?php
$api = 'TWÓJ KLUCZ API ZOHO';
$fields = array();
$fields['content'] = "@/ścieżka/do/plik.odt";
$fields['filename'] = 'plik.odt';
$fields['id'] = '13';
$fields['format'] = 'odt';
$fields['saveurl'] = urlencode('http://localhost/foo.php');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://export.writer.zoho.com/remotedoc.im?apikey='.$api.'&output=editor');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($ch);
curl_close($ch);
echo $page;
Stosujemy bibliotekę CURL by wysłać POSTem plik, jak i potrzebne dane.
content to zawartość pliku (dla Curl podajemy ścieżkę do pliku poprzedzoną znakiem @),
filename to nazwa pliku,
id - unikalny ID stosowany np. do identyfikacji pliku przy zapisie.
format to format w jakim dokument ma zostać zapisany, a
saveurl to pełen adres URL strony w naszym serwisie odbierającej nową wersję dokumentu z zapisu w edytorze (oczywiście localhost nie zadziała, musi to być publicznie dostępny adres URL). Przykładowy kod obsługujący zapis dostępny jest
w dokumentacji API. Żądanie, jeżeli się powiedzie zwróci wklejkę JavaScript przekierowującą na edytor.
API dla arkuszy i prezentacji jest prostsze. W ich przypadku link do edytora przekazywany jest w nagłówki
Location odpowiedzi. Musimy go więc wyłuskać i wykorzystać:
<?php
$api = 'TWÓJ KLUCZ API ZOHO';
$fields = array();
$fields['content'] = "@/ścieżka/do/b.ppt";
$fields['filename'] = 'b.ppt';
$fields['id'] = '13';
$fields['format'] = 'ppt';
$fields['saveurl'] = urlencode('http://localhost/foo.php');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://show.zoho.com/remotedoc.im?apikey='.$api.'&output=editor');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, true);
$content = curl_exec ($ch);
curl_close ($ch);
$headers = explode("\n", $content);
foreach($headers as $val)
{
if (stripos($val, 'Location: ') !== false)
{
$url = str_replace('Location: ', '', $val);
echo '<iframe src="'.$url.'" style="width:100%;height:400px;"></iframe>';
}
}
W powyższym przykładzie pobieramy nagłówki, a nie treść odpowiedzi. Następnie przeszukujemy otrzymane nagłówki by trafić na nagłówek Location. Wyciągamy link i otwieramy edytor w ramce.
- Dodane: 03.10.2009 przez riklaunim