Avatar billede MSR Juniormester
07. august 2011 - 00:18 Der er 18 kommentarer og
1 løsning

kode til indsæt i google kalender

Jeg mangler koden til at indsætte events i min google kalender. jeg kan finde en del bl.a. på code.google men jeg forstår ikke at bruge det.
"
      cal.createEvent(title, new Date(startDate), new Date(endDate), {description: description, location: location});
      sheet.getRange(startRow + i, 6).setValue(EVENT_IMPORTED); "

Nogen der kender en formular der kan oprette og indsætte events i kalenderen ud fra nogle variabler?
start, slut, event_navn, location, description evt vedhæftet fil?

venlig hilsen
Magnus
Avatar billede magic-mouse Novice
07. august 2011 - 09:13 #1
Avatar billede MSR Juniormester
07. august 2011 - 14:29 #2
njaaa det er vist den anden vej rundt. Det giver så vidt jeg kan se brugere mulighed for at tilføje mine events til deres kalendere - IKKE oprette events i min. Det er det jeg leder efter.
eller læser jeg det forkert?

Magnus
Avatar billede pmnielsen Novice
08. august 2011 - 21:41 #3
Prøv at kigge på det her

http://code.google.com/intl/da-DK/apis/calendar/data/1.0/developers_guide_php.html

jeg har selv fået det til at virke men kun til hoved kalenderen (altså ikke til dine "under/ekstra kalender")
Avatar billede MSR Juniormester
08. august 2011 - 21:55 #4
udemærket. men det kræver at folk har en google konto de selv kan logge ind med først ikke?
jeg har en bruger folk kan logge ind med så jeg håber at kunne springe den del over og gøre det automatisk. kan jeg ikke se den del du har brugt for jeg forstår sgu ikke helt hvor meget af det jeg skal have med?

Magnus
Avatar billede pmnielsen Novice
08. august 2011 - 23:18 #5
Jeg regner med at det er dig der har en google konto hvor du skal kan indsætte i fra din hjemmeside ????

Hvis det er det skulle denne kode gerne virke du skal bare indsætte din google brugernavn og kodeord.
Og have Zend biblioteket til at ligge på din server

ret i createEvent funktionen til sidst i koden for at ændre koden, og tilføj nogle variabler bruger kan skrive til fra siden.

Håber det er til at forstå ellers må du vende tilbage.

KODE START:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<?php
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
$user = '**************'; //brugernavn til din google konto
$pass = '**************'; //password til din google konto


$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // predefined service name for calendar

$client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);

function createEvent ($client, $title = 'Tennis with Beth',
    $desc='Meet for a quick lesson', $where = 'On the courts',
    $startDate = '2008-01-20', $startTime = '10:00',
    $endDate = '2008-01-20', $endTime = '11:00', $tzOffset = '-08')

{

  $gdataCal = new Zend_Gdata_Calendar($client);
  $newEvent = $gdataCal->newEventEntry();
  $newEvent->title = $gdataCal->newTitle($title);
  $newEvent->where = array($gdataCal->newWhere($where));
  $newEvent->content = $gdataCal->newContent("$desc");
  $when = $gdataCal->newWhen();
  $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
  $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
  $newEvent->when = array($when);
  // Upload the event to the calendar server

  // A copy of the event as it is recorded on the server is returned
  $createdEvent = $gdataCal->insertEvent($newEvent);
  return $createdEvent->id->text;
}



?>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
<title>zend google import</title>
</head>
<body>
<?php
createEvent($client,'titel','kommentar','sted','2011-08-08','10:00','2011-08-08','11:00','+01');

?>



</body>

</html>
Avatar billede MSR Juniormester
16. august 2011 - 20:30 #6
hej igen
jeg skal lige være helt med.
Skal jeg hente Zend og smide det i et dir på serveren?
jeg har ikke root access da det ikke er min egen server men er det nødvendigt?

jeg prøver mig lige frem.

Magnus
Avatar billede MSR Juniormester
16. august 2011 - 20:39 #7
og hvad hulen er "AUTH_SERVICE_NAME;"?
jeg kan ikke få den del til at du´ selvom jeg skriver navnet på den kalender eventen skal indsættes i.

skal jeg ikke lave en variabel til det ligesom user og pass?

Magnus
Avatar billede MSR Juniormester
16. august 2011 - 21:07 #8
så langt så godt. jeg fik ændret navnet så det vist virker? der manglede åbenbart ('navn')?
men der er noget galt for "    public static function loadClass($class, $dirs = null)" giver følgende fejl:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'

Er det noget jeg ikke har oprettet endnu?
jeg tror jeg har været noget for nærig ned point (hvis der stadig er nogen der bruger dem?) for det her er vist noget sværere end jeg troede?
Avatar billede pmnielsen Novice
18. august 2011 - 21:04 #9
Hej

Jeg har bare lagt zend mappen ind regner med at require_once 'Zend/Loader.php'; henviser til hvor der ligger.
så hvis zend mappen ikke ligger i sammen mappe som din php fil skal det rettes

Jeg har ikke rettet på
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // predefined service name for calendar
Avatar billede MSR Juniormester
19. august 2011 - 21:15 #10
hmm kan det være rigtigt?
jeg får fejlen "Parse error: syntax error, unexpected ';', expecting '(' " hvis jeg ændrer tilbage til ovenstående.

og jeg har stadig den anden string fejl?

og Zend skal vel ligge i dir /zend for at det virker? eller er linket da forkert?

Kan du ikke prøve at skrive det du har?
f.eks. den formular der indsætter selve dataen?
Den ser ikke ud til at følge med her?

Magnus
Avatar billede pmnielsen Novice
20. august 2011 - 21:03 #11
jeg har lige prøvet at copy/paste fra koden oven for.

Det eneste jeg hat rettet er:

1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/ (...)
det har jeg rettet til
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"h\ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
(uden \ i h\ttp , hvis jeg ikke skriver \ lave siden den om til et forkortet link)

2.
<html xmlns="http://www.w3.org/ (...)
det har jeg rettet til
<html xmlns="h\ttp://www.w3.org/1999/xhtml">
(igen uden \ i h\ttp)

3.
$user = '**************'; //brugernavn til din google konto
rettet til
$user ='BRUGERNAVN TIL GOOGLE KONTO';

4.
$pass = '**************'; //password til din google konto
rettet til
$pass = 'KODEORD TIL GOOGLEKONTO';

5.
Jeg har min php fil til at ligge i
www.domænenavn/phpfilen.php
og zend til at ligge i
www.domænenavn/zend
i mappen zend ligger mapperne Gdata,Http,Uri,Validate

6.
Formularen det indsætte dataerne liiger nederst i filen
createEvent($client,'titel','kommentar','sted','2011-08-08','10:00','2011-08-08','11:00','+01');
den skal bare tilrettes med de data man ønsker.

7.
Jeg har ikke andet end det i filen ovenfor.
Håber du får det til at lykkes. :-)
Avatar billede MSR Juniormester
21. august 2011 - 01:03 #12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>titel</title>
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><? include("menu.html"); ?></td></tr>
<tr height="500"><td width="150" valign="top"><? include("sidemenu_index.html"); ?></td><td valign="top">
<br><br>
<?php
server login!!!
?>
<?
if($session->logged_in)
    {
    ?>

<?php
require_once '/Zend/Loader.php';
Zend_Loader::loadClass('/Zend_Gdata');
Zend_Loader::loadClass('/Zend_Gdata_AuthSub');
Zend_Loader::loadClass('/Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('/Zend_Gdata_Calendar');
$user = 'xxxx'; //brugernavn til din google konto
$pass = 'yyyy'; //password til din google konto

$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // predefined service name for calendar

$client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);

function createEvent ($client, $title = 'Tennis with Beth',
    $desc='Meet for a quick lesson', $where = 'On the courts',
    $startDate = '2008-01-20', $startTime = '10:00',
    $endDate = '2008-01-20', $endTime = '11:00', $tzOffset = '-08')

{

  $gdataCal = new Zend_Gdata_Calendar($client);
  $newEvent = $gdataCal->newEventEntry();
  $newEvent->title = $gdataCal->newTitle($title);
  $newEvent->where = array($gdataCal->newWhere($where));
  $newEvent->content = $gdataCal->newContent("$desc");
  $when = $gdataCal->newWhen();
  $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
  $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
  $newEvent->when = array($when);
  // Upload the event to the calendar server

  // A copy of the event as it is recorded on the server is returned
  $createdEvent = $gdataCal->insertEvent($newEvent);
  return $createdEvent->id->text;
}



?>

<?php
createEvent($client,'testtesttest','kommentar','sted','2011-09-09','10:00','2011-09-09','11:00','+01');

?>

Ovenstående giver fejlen:
Parse error: syntax error, unexpected ';', expecting '(' på linien hvor der står $service...
mange tak for hjælpen so far men det er altså noget helt galt? Kan det være min server den ikke har åbnet for noget php-et-eller-andet?

og hvorfor hulen er der en funktion create event med en masse underlig data?

Denne fil ligger i roden og Zend ligger direkte som /Zend

Magnus
Avatar billede pmnielsen Novice
21. august 2011 - 21:21 #13
Jeg kan se at du i
require_once 'zend/loader.php'
og de efterfølgene zend_loader har skrevet
require once '/zend/loader.php'
altså med / foran ,Kan det måske være fejlen?

ellers kan du prøve at læse dette:
http://code.google.com/intl/da/apis/calendar/data/1.0/developers_guide_php.html#Audience

de underlige data i createEvent er bare noget det er sat ind som test

du kan også lave den på denne måde med det anden er fint som test:
$client //er allerede oprette i filen
$dect="kommentar til posten";
$where="hvor"; O.S.V
createEvent($client, $title,$desc,$where,$startDate,$startTime,$endDate,$endTime,$tzOffset)
Avatar billede MSR Juniormester
25. august 2011 - 13:30 #14
Jeg tror vi snakker helt forbi hinanden.
Enten er der noget i min php server der ikke virker som det skal, ellers er der fejl i scriptet.
jeg får som sagt følgende fejl:

Parse error: syntax error, unexpected ';', expecting '(' på linien hvor der står $service...

hvilket betyder at der er noget sludder i selve koden. det giver for mig god mening. der mangler simpelthen (???)

Magnus
Avatar billede pmnielsen Novice
26. august 2011 - 21:02 #15
Det må være din php server.

her er måske hvad du mangler:
http://code.google.com/intl/da/apis/gdata/articles/php_client_lib.html

prøv at kigge på det. det ser ud til du skal have en php version over 5.1.4. Nede på siden er der en test så du kan se om php/zend virker som det skal.
Avatar billede MSR Juniormester
08. september 2011 - 20:38 #16
Så langt så godt. jeg fik endeligt opdateret til 5.2 og nu virker det smertefrit.
Dog kan jeg ikke lige lure hvordan jeg får variabler ind i felterne?
jeg bruger f.eks følgende:
<?php
$overskrift = 'Hemmelig tur';
$kommentar = 'Hemmelig kommentar';
$sted = 'Hemmeligt sted';
$startdato = '2011-10-01';
$starttid = '10:00';
$slutdato = '2011-10-01';
$sluttid = '11:00';

    createEvent($client,'$overskrift','$kommentar','$sted','2011-09-10','10:00','2011-09-10','11:00','+01');
    echo "Arrangementet er oprettet!";
?>

men det indsætter bare $overskrift, $sted osv...
Hvordan gør du det?

Smid mig et svar så er der point. :D
Magnus
Avatar billede MSR Juniormester
08. september 2011 - 20:51 #17
Der svarede jeg så selv på mit spørgsmål. Det skulle naturligvis være variabler uden ' '.
Smid mig et "svar" så får du point.
og tusind tak for hjælpen, det er en pissefed feature at have.

Magnus
Avatar billede pmnielsen Novice
09. september 2011 - 07:22 #18
Det var godt vi kom i mål
Avatar billede MSR Juniormester
11. september 2011 - 11:02 #19
hov jeg har et spørgsmål til.
hvordan henter du de variabler du bruger?
jeg har prøvet at erklære dem samt hente via post men kunne læse at det ikke virker i php5 mere. så jeg har skrevet følgende:

$overskrift = "";
$kommentar = "";
$sted = "";
$startdato = "";
$starttid = "";
$slutdato = "";
$sluttid = "";

$overskrift = mysql_real_escape_string($_POST['overskrift']);
$kommentar = mysql_real_escape_string($_POST['kommentar']);
$sted = mysql_real_escape_string($_POST['sted']);
$startdato = mysql_real_escape_string($_POST['startdato']);
$starttid = mysql_real_escape_string($_POST['starttid']);
$slutdato = mysql_real_escape_string($_POST['slutdato']);
$sluttid = mysql_real_escape_string($_POST['sluttid']);

men siden fejler bare et sted og outputter INGENTING! hvordan kommer du fra din formular til variabler?

på forhånd tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester