Добавление Google php API для календаря Google в laravel

Я хочу использовать API Google php для доступа к календарям. Я работаю с ларавелем. Я уже добавил пакет в композитор, и он загружается нормально, дело в том, что мне нужно сделать с провайдерами и псевдонимами или чем-то еще, чтобы связать API с моим приложением. Я хочу вызвать класс Calendar. Я правильно выполняю авторизацию с другой библиотекой, artdarek/oauth-4-laravel, я могу показать календарь с помощью этого API, но я не могу вставлять/редактировать календарь, это более простой способ?

Здесь провайдеры:

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    'Illuminate\Cache\CacheServiceProvider',
    'Illuminate\Session\CommandsServiceProvider',
    'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'Illuminate\Routing\ControllerServiceProvider',
    'Illuminate\Cookie\CookieServiceProvider',
    'Illuminate\Database\DatabaseServiceProvider',
    'Illuminate\Encryption\EncryptionServiceProvider',
    'Illuminate\Filesystem\FilesystemServiceProvider',
    'Illuminate\Hashing\HashServiceProvider',
    'Illuminate\Html\HtmlServiceProvider',
    'Illuminate\Log\LogServiceProvider',
    'Illuminate\Mail\MailServiceProvider',
    'Illuminate\Database\MigrationServiceProvider',
    'Illuminate\Pagination\PaginationServiceProvider',
    'Illuminate\Queue\QueueServiceProvider',
    'Illuminate\Redis\RedisServiceProvider',
    'Illuminate\Remote\RemoteServiceProvider',
    'Illuminate\Auth\Reminders\ReminderServiceProvider',
    'Illuminate\Database\SeedServiceProvider',
    'Illuminate\Session\SessionServiceProvider',
    'Illuminate\Translation\TranslationServiceProvider',
    'Illuminate\Validation\ValidationServiceProvider',
    'Illuminate\View\ViewServiceProvider',
    'Illuminate\Workbench\WorkbenchServiceProvider',
    'Artdarek\OAuth\OAuthServiceProvider',
    'Google\Client',
),

Вот псевдонимы:

'aliases' => array(

    'App'             => 'Illuminate\Support\Facades\App',
    'Artisan'         => 'Illuminate\Support\Facades\Artisan',
    'Auth'            => 'Illuminate\Support\Facades\Auth',
    'Blade'           => 'Illuminate\Support\Facades\Blade',
    'Cache'           => 'Illuminate\Support\Facades\Cache',
    'ClassLoader'     => 'Illuminate\Support\ClassLoader',
    'Config'          => 'Illuminate\Support\Facades\Config',
    'Controller'      => 'Illuminate\Routing\Controller',
    'Cookie'          => 'Illuminate\Support\Facades\Cookie',
    'Crypt'           => 'Illuminate\Support\Facades\Crypt',
    'DB'              => 'Illuminate\Support\Facades\DB',
    'Eloquent'        => 'Illuminate\Database\Eloquent\Model',
    'Event'           => 'Illuminate\Support\Facades\Event',
    'File'            => 'Illuminate\Support\Facades\File',
    'Form'            => 'Illuminate\Support\Facades\Form',
    'Hash'            => 'Illuminate\Support\Facades\Hash',
    'HTML'            => 'Illuminate\Support\Facades\HTML',
    'Input'           => 'Illuminate\Support\Facades\Input',
    'Lang'            => 'Illuminate\Support\Facades\Lang',
    'Log'             => 'Illuminate\Support\Facades\Log',
    'Mail'            => 'Illuminate\Support\Facades\Mail',
    'Paginator'       => 'Illuminate\Support\Facades\Paginator',
    'Password'        => 'Illuminate\Support\Facades\Password',
    'Queue'           => 'Illuminate\Support\Facades\Queue',
    'Redirect'        => 'Illuminate\Support\Facades\Redirect',
    'Redis'           => 'Illuminate\Support\Facades\Redis',
    'Request'         => 'Illuminate\Support\Facades\Request',
    'Response'        => 'Illuminate\Support\Facades\Response',
    'Route'           => 'Illuminate\Support\Facades\Route',
    'Schema'          => 'Illuminate\Support\Facades\Schema',
    'Seeder'          => 'Illuminate\Database\Seeder',
    'Session'         => 'Illuminate\Support\Facades\Session',
    'SSH'             => 'Illuminate\Support\Facades\SSH',
    'Str'             => 'Illuminate\Support\Str',
    'URL'             => 'Illuminate\Support\Facades\URL',
    'Validator'       => 'Illuminate\Support\Facades\Validator',
    'View'            => 'Illuminate\Support\Facades\View',
    'OAuth'           => 'Artdarek\OAuth\Facade\OAuth',
    'Calendar'        => 'Google\Service\Calendar'
),

Композитор.json

    "require": {
    "laravel/framework": "4.1.*",
    "artdarek/oauth-4-laravel": "dev-master",
    "google/apiclient": "dev-master"
},

Способ добавления календаря

public function addCalendar($calendarName){

    $calendar = new Calendar();
    $calendar->setSummary($calendarName);

    // get google service
    $googleService = OAuth::consumer( 'Google' );

    $createdCalendar = $googleService->calendars->insert($calendar);

    echo $createdCalendar->getId();
}

Надеюсь, вы можете мне помочь! Спасибо !


person SkeartReach    schedule 04.04.2014    source источник


Ответы (2)


После того, как вы добавили библиотеку Google, в требуемом блоке вашего файла composer.json эта строка:

"google/apiclient": "dev-master"

бежать

обновление композитора

Теперь вы можете использовать клиентскую библиотеку Google в своем контроллере.

$google_client = new Google_Client();
$google_client->setApplicationName('YOUR APPLICATION NAME');
$google_client->setClientId('YOUR CLIENT ID');
$google_client->setClientSecret('SECRET');

Конечно, вы можете сохранить свой идентификатор клиента и секрет в файле конфигурации.

Вам не нужно добавлять путь к библиотеке в список поставщиков.

person Mihai Crăiță    schedule 09.05.2014
comment
Я запускаю обновление композитора после добавления google/apiclient: dev-master в требуемый блок файла composer.json. Это дает ошибку, например, ваши требования не могут быть разрешены для устанавливаемого набора пакетов. Проблема 1 - для освещения/поддержки версии 5.2.25 требуется освещение/контракты 5.3.* -› соответствующий пакет не найден. - Вывод: удалите laravel/framework v4.1.24. Я новичок в laravel и использую laravel 4.1.24. - person Adarsh Tiwari; 09.08.2016

В своем нынешнем виде (насколько мне известно) эта библиотека не предназначена для простого использования в Laravel. Он не содержит поставщика услуг Laravel (который будет входить в ваши массивы провайдеров) или класс Facade, который будет входить в ваш массив псевдонимов.

Когда я попытался использовать этот API, я пошел и получил неофициальный пакет, содержащий пространства имен, а затем всякий раз, когда я хотел использовать код, я просто вызывал его через его пространство имен, например.

$client = new \Google\Client(); 

// Sets the class to use objects
$client->setUseObjects(true);
// Initiates Calendar Class injecting the $client class
$cal = new \Google\CalendarService($client);

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

include('vendor/google/client...');

И следуя руководству github по использованию пакета.

Надеюсь это поможет

person Chris Goosey    schedule 07.05.2014