gebruik google api
ik ben aan het stoeien met de google agenda.
ik wil afspraken uit mijn agenda in die van google zetten, basis is gelukt.
met de api van google apiCalendarService.php
dit lukt deels.
ik kan een afspraak er in zetten maar krijg het id niet terug met getid()
$createdEvent = $events->insert('mijnagenda.calendar.google.com', $event);
echo $createdEvent->getId();
ik kan ook een afspraak opvragen voor een update maar de update lukt ook niet.
voor beide geld dat de opdracht het script stopt(d4 wordt niet geëchood).
$event = $cal->events->get('[email protected]', 'id event');
print_r($event);
echo 'd2 ';
$updatedEvent = $cal->events->update('[email protected]','id event', $event);
echo 'd4 ';
waar moet ik t zoeken :)
het teken -> heb ik blind overgenomen(zoals alles) maar ik zou hier graag iets over lezen(nederlands), kan alleen niets vinden
Gert-Willem
Quote:
overgenomen(zoals alles)
dat ik een copie paste programmeur ben
Als programmeur is engels een pré omdat de meeste tutorials engels zijn. Er zijn erg weinig nederlandse (video) tutorials.
Ten tweede, wat is je vraag nu? Of ik jou een link moet geven waar je hier over het een en ander kan leren of om voor jou een kant en klaar scriptje te maken?
nu met php moet ik van de google api gebruik maken. ik vind lezen moeilijk en engels lezen helemaal, meestal omdat de info die ik nodig heb niet te vinden is. daarnaast is zoeken op -> onmogelijk.
wat ik wil is zeker geen script, dan weet ik nog niet hoe t werkt maar als je de code die ik hierboven laat zien herkent, dan weet je ws ook wat de reden zou kunnen zijn waarom $createdEvent->getId() de handel stil legt.
ps en video heb ik geen geduld voor.:)
Toevoeging op 22/08/2012 21:33:44:
aanvulling
//$event_id = $createdEvent->getId();
echo 'event id = '.$createdEvent['id'];
dit werkt wel
Gewijzigd op 22/08/2012 21:12:57 door gert-willem Sanders
waar komen d2 en d4 vandaan? geef is wat meer relevante code..
zet dit tussen <?php ?> php tags dat is makkelijker lezen voor de leden waardoor je sneller geholpen kan worden.
1 ik ben hobbyist en heb alleen simpele dingen nodig gehad maar heb een leuk agenda systeem met registratie via mysql database mailing bij afspraken die gemaakt zijn en een registratie van betalingen.
2 d2 en d4 zijn twee echo's om te weten wat er gewerkt heeft en wat niet, zeer simpele foutopsporing dus.
3 hierbij het script gebruik makend van de v3 google api
Code (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
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
<?php
require_once '../src/apiClient.php';
require_once '../src/contrib/apiCalendarService.php';
print_r($_SESSION);
print_r($_createdEvent);
session_start();
$client = new apiClient();
$client->setApplicationName("test");
// Visit https://code.google.com/apis/console?api=calendar to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('xxxxxxxxxxxxxxx.apps.googleusercontent.com');
$client->setClientSecret('xxxxxxxxxxxxxxxx ');
$client->setRedirectUri('https://www.xxxxx.nl/xxx/test.php');
$client->setDeveloperKey('test');
$cal = new apiCalendarService($client);
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
$event = new Event();
$event->setSummary('Appointment 141');
$event->setLocation('Alexan');
$start = new EventDateTime();
$start->setDateTime('2012-09-07T10:00:00.000-07:00');
$event->setStart($start);
$end = new EventDateTime();
$end->setDateTime('2012-09-07T10:25:00.000-07:00');
$event->setEnd($end);
echo 'aa';
$event->setcolorId('7');
echo 'aa2';
$cal = new apiCalendarService($client);
$createdEvent = $cal->events->insert('[email protected]', $event);
echo 'ccc';
echo $createdEvent->getId();
//echo 'event id = '.$createdEvent['id'];
echo 'event toegevoegd.';
//print_r($createdEvent);
}
$_SESSION['token'] = $client->getAccessToken();
echo 'dd ';
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Connect Me!</a>";
}
echo 'm ';
?>
require_once '../src/apiClient.php';
require_once '../src/contrib/apiCalendarService.php';
print_r($_SESSION);
print_r($_createdEvent);
session_start();
$client = new apiClient();
$client->setApplicationName("test");
// Visit https://code.google.com/apis/console?api=calendar to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('xxxxxxxxxxxxxxx.apps.googleusercontent.com');
$client->setClientSecret('xxxxxxxxxxxxxxxx ');
$client->setRedirectUri('https://www.xxxxx.nl/xxx/test.php');
$client->setDeveloperKey('test');
$cal = new apiCalendarService($client);
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
$event = new Event();
$event->setSummary('Appointment 141');
$event->setLocation('Alexan');
$start = new EventDateTime();
$start->setDateTime('2012-09-07T10:00:00.000-07:00');
$event->setStart($start);
$end = new EventDateTime();
$end->setDateTime('2012-09-07T10:25:00.000-07:00');
$event->setEnd($end);
echo 'aa';
$event->setcolorId('7');
echo 'aa2';
$cal = new apiCalendarService($client);
$createdEvent = $cal->events->insert('[email protected]', $event);
echo 'ccc';
echo $createdEvent->getId();
//echo 'event id = '.$createdEvent['id'];
echo 'event toegevoegd.';
//print_r($createdEvent);
}
$_SESSION['token'] = $client->getAccessToken();
echo 'dd ';
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Connect Me!</a>";
}
echo 'm ';
?>
kijk even naar deze tutorial(s):
http://www.phphulp.nl/php/tutorial/overig/beginnersfouten-tegengaan/763/
http://www.phphulp.nl/php/tutorial/overig/oop-beginnershandleiding-php5/701/
Want ook al doe je dit als hobby dan moet je het wel goed doen natuurlijk!
dan nu over je code van boven naar beneden.
session_start moet ALTIJD bovenaan dus die print_r daarboven is fout..
tevens snap ik het nut daar even niet van waarom je beide print..
vervolgens zet je
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
/*
* Error reportin 1 is aan 0 is uit
*/
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL | E_STRICT);
?>
/*
* Error reportin 1 is aan 0 is uit
*/
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL | E_STRICT);
?>
na je session start om te zien wat er fout gaat en wat niet ( debuggen ) ;)
bouw foutafhandeling in..
vertel ons de foutmeldingen die je krijgt.
mis je overigens geen gebruiker waar je naar toe moet mailen?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$attendee1 = new EventAttendee();
$attendee1->setEmail('attendeeEmail');
// ...
$attendees = array($attendee1,
// ...
);
$event->attendees = $attendees;
?>
$attendee1 = new EventAttendee();
$attendee1->setEmail('attendeeEmail');
// ...
$attendees = array($attendee1,
// ...
);
$event->attendees = $attendees;
?>
foutafhandeling komt er wel in maar eerst moet t werken en dan zo beperkt mogelijk dingen erbij zetten.
Fatal error: Call to a member function getId() on a non-object in /var/www/vhosts/hollandindoorsport.nl/httpdocs/test/test.php
dit is de foutmelding, en wat ik al dacht dus op de regel
$createdevent moet dus een new krijgen?
ik heb toegevoegd
maar dit geeft dezelfde foutmelding.
Toevoeging op 23/08/2012 11:44:54:
ik heb in geen enkele tutor iets gevonden maar in een ander voorbeeld het volgende gevonden.
dat was de oplossing, voor beide problemen, die ik ook verwachte hetzelfde te zijn.
Bedankt voor jullie moeite, ik ben er wel anders door gaan zoeken.
overigens kwam ik toen ik de foutboodschap eenmaal had hetzelfde probleem meer tegen en iedereen klaagt over het weinige dat over de v3 api is beschreven.