2015-06-13 4 views
1

Я пытаюсь в течение нескольких дней получить API-интерфейс Google Calendar и работать с ним совершенно без везения. Я использую PHP и учетную запись службы для аутентификации. Я следовал этому руководству (http://www.daimto.com/google-calendar-api-with-php-service-account/), а приведенный ниже код - из этого учебника.API календаря Google с PHP - учетная запись службы

У меня установлена ​​консоль разработчиков, чтобы разрешить API-интерфейс календаря, и я добавил адрес электронной почты разработчиков в раздел общего ресурса календаря.

Когда я запускаю этот код, я просто получаю пустую страницу - без ошибок, без текста какого-либо типа, просто пустой белой страницы. Я полностью потерян - любая помощь будет высоко оценена. Приветствия

<?php 

require 'vendor/autoload.php'; 
session_start();   

$client_id = '123456789-qwertyuiop.apps.googleusercontent.com'; 
$Email_address = '[email protected]'; 
$key_file_location = 'path_to_key/key.p12';  

$client = new Google_Client();  
$client->setApplicationName("Client_Library_Examples"); 
$key = file_get_contents($key_file_location);  

// separate additional scopes with a comma 
$scopes ="https://www.googleapis.com/auth/calendar.readonly"; 
$cred = new Google_Auth_AssertionCredentials( 
    $Email_address,  
    array($scopes),  
    $key   
);  
$client->setAssertionCredentials($cred); 
if($client->getAuth()->isAccessTokenExpired()) {   
    $client->getAuth()->refreshTokenWithAssertion($cred);  
}  
$service = new Google_Service_Calendar($client);  

?> 

<html><body> 

<?php 
$calendarList = $service->calendarList->listCalendarList(); 

while(true) { 
    foreach ($calendarList->getItems() as $calendarListEntry) { 

     echo $calendarListEntry->getSummary()."<br>\n"; 

     // get events 
     $events = $service->events->listEvents($calendarListEntry->id); 

     foreach ($events->getItems() as $event) { 
      echo "-----".$event->getSummary()."<br>"; 
     } 
    } 
    $pageToken = $calendarList->getNextPageToken(); 
    if ($pageToken) { 
     $optParams = array('pageToken' => $pageToken); 
     $calendarList = $service->calendarList->listCalendarList($optParams); 
    } else { 
     break; 
    } 
} 

?> 
+0

Надеюсь, вы сделали этот шаг https://developers.google.com/drive/web/delegation. Есть ли какие-либо события в календаре, откуда вы пытаетесь перечислить события. Вы можете попробовать образец запроса здесь https://developers.google.com/google-apps/calendar/v3/reference/events/list, чтобы проверить, не является ли его проблема с вашим календарем или нет. – SGC

+0

Спасибо @SGC, да, я пробовал все эти вещи. Что, наконец, получило это, было добавление основного адреса электронной почты под вызов «посетителей». Но при этом у меня есть эта проблема: [link] (https://stackoverflow.com/questions/30825403/calendar-created-by-field) – Brad

ответ

0

Когда я запускаю этот код, я просто получаю пустую страницу - не ошибки, ни текста любого рода, просто пустую белую страницу. Я полностью потерян - любая помощь будет высоко оценена. Cheers

На этом примечании я столкнулся с подобным расстройством и обнаружил, что мой скрипт автоматически создал error_log в отдельном файле на сервере. Просто откройте его в редакторе кода, и вы сможете увидеть подробные ответы. Не уверен, что это поможет вам, но это помогло мне тонну.

Смежные вопросы