2013-08-22 3 views
1

Я хочу создать интерфейс календаря Google в своем веб-приложении и использовать календарь в качестве хранилища для событий, так как это также передает другие службы. Я знаю, что мне нужно получить токен авторизации, а затем токен обновления для приложения, чтобы использовать API. Я настроил приложение на Google и получил код PHP, чтобы помочь получить токен.Как интегрировать календарь Google с API в Laravel?

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

Я нашел этот пост: Google Calendar API v3 hardcoded credentials, который я попытался выполнить.

Я побежал первый сценарий:

<?php 
$scope   = 'https://www.google.com/calendar/feeds/'; 
$client_id  = 'my id'; 
$redirect_uri = 'my redirect url'; 

$params = array(
       'response_type' => 'code', 
       'client_id'  => $client_id, 
       'redirect_uri' => $redirect_uri, 
       'scope'   => $scope 
       ); 
$url = 'https://accounts.google.com/o/oauth2/auth?' . http_build_query($params);   
echo $url."\n"; 

Вопросы: Я скопировал перенаправлении URI из Google API. Это включает некоторый код, а также другую строку http://localhost. Я копирую обе строки или только одну. Если это так настроить для моего приложения. Что делает этот параметр? -

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

Я запускал скрипт с Ури, предоставленной Google API, и она пришла с ошибкой:

Invalid parameter value for redirect_uri: Missing authority: urn:ietf:wg:oauth:2.0:oob http://localhost

Так я предполагаю, что мое перенаправление URI не так?

Я только что загрузил библиотеку Google PHP. Я побежал пример здесь:

$client->setClientId('my id'); 
$client->setClientSecret('my key_'); 
$client->setRedirectUri('uri 
'); 
$client->setDeveloperKey('my developer key'); 
$plus = new Google_PlusService($client); 

if (isset($_GET['code'])) { 
$client->authenticate(); 
$_SESSION['token'] = $client->getAccessToken(); 
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); 
} 

if (isset($_SESSION['token'])) { 
$client->setAccessToken($_SESSION['token']); 
} 

if ($client->getAccessToken()) { 
$activities = $plus->activities->listActivities('me', 'public'); 
print 'Your Activities: <pre>' . print_r($activities, true) . '</pre>'; 

// We're not done yet. Remember to update the cached access token. 
// Remember to replace $_SESSION with a real database or memcached. 
$_SESSION['token'] = $client->getAccessToken(); 
} else { 
$authUrl = $client->createAuthUrl(); 
print "<a href='$authUrl'>Connect Me!</a>"; 
} 

Опять ошибка:

invalid parameter value for redirect_uri: Missing authority: urn:ietf:wg:oauth:2.0:oob http://downsadmin.loc/google/test_googleplus.php

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

ответ

1

Ok

больше исследований в отчаянии, и я нашел этот учебник по OAuth 2. Я следовал за этим в шаге 2, и удалось получить мой маркер обновления!

http://cornempire.net/2012/01/08/part-2-oauth2-and-configuring-your-application-with-google/

я изначально имеют пустой маркер возвращается и необходимо добавить следующие строки в сценарий в соответствии с комментарием пользователем «Баккара» в должности:

Чтобы исправить пустой вопрос $ cRefreshToken Вам необходимо включить SSL, добавив

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

перед curl_exec($ch);

Так что теперь к работе с го e API