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

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

здесь поставщики:

'providers' => array(

    'IlluminateFoundationProvidersArtisanServiceProvider',
    'IlluminateAuthAuthServiceProvider',
    'IlluminateCacheCacheServiceProvider',
    'IlluminateSessionCommandsServiceProvider',
    'IlluminateFoundationProvidersConsoleSupportServiceProvider',
    'IlluminateRoutingControllerServiceProvider',
    'IlluminateCookieCookieServiceProvider',
    'IlluminateDatabaseDatabaseServiceProvider',
    'IlluminateEncryptionEncryptionServiceProvider',
    'IlluminateFilesystemFilesystemServiceProvider',
    'IlluminateHashingHashServiceProvider',
    'IlluminateHtmlHtmlServiceProvider',
    'IlluminateLogLogServiceProvider',
    'IlluminateMailMailServiceProvider',
    'IlluminateDatabaseMigrationServiceProvider',
    'IlluminatePaginationPaginationServiceProvider',
    'IlluminateQueueQueueServiceProvider',
    'IlluminateRedisRedisServiceProvider',
    'IlluminateRemoteRemoteServiceProvider',
    'IlluminateAuthRemindersReminderServiceProvider',
    'IlluminateDatabaseSeedServiceProvider',
    'IlluminateSessionSessionServiceProvider',
    'IlluminateTranslationTranslationServiceProvider',
    'IlluminateValidationValidationServiceProvider',
    'IlluminateViewViewServiceProvider',
    'IlluminateWorkbenchWorkbenchServiceProvider',
    'ArtdarekOAuthOAuthServiceProvider',
    'GoogleClient',
),

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

'aliases' => array(

    'App'             => 'IlluminateSupportFacadesApp',
    'Artisan'         => 'IlluminateSupportFacadesArtisan',
    'Auth'            => 'IlluminateSupportFacadesAuth',
    'Blade'           => 'IlluminateSupportFacadesBlade',
    'Cache'           => 'IlluminateSupportFacadesCache',
    'ClassLoader'     => 'IlluminateSupportClassLoader',
    'Config'          => 'IlluminateSupportFacadesConfig',
    'Controller'      => 'IlluminateRoutingController',
    'Cookie'          => 'IlluminateSupportFacadesCookie',
    'Crypt'           => 'IlluminateSupportFacadesCrypt',
    'DB'              => 'IlluminateSupportFacadesDB',
    'Eloquent'        => 'IlluminateDatabaseEloquentModel',
    'Event'           => 'IlluminateSupportFacadesEvent',
    'File'            => 'IlluminateSupportFacadesFile',
    'Form'            => 'IlluminateSupportFacadesForm',
    'Hash'            => 'IlluminateSupportFacadesHash',
    'HTML'            => 'IlluminateSupportFacadesHTML',
    'Input'           => 'IlluminateSupportFacadesInput',
    'Lang'            => 'IlluminateSupportFacadesLang',
    'Log'             => 'IlluminateSupportFacadesLog',
    'Mail'            => 'IlluminateSupportFacadesMail',
    'Paginator'       => 'IlluminateSupportFacadesPaginator',
    'Password'        => 'IlluminateSupportFacadesPassword',
    'Queue'           => 'IlluminateSupportFacadesQueue',
    'Redirect'        => 'IlluminateSupportFacadesRedirect',
    'Redis'           => 'IlluminateSupportFacadesRedis',
    'Request'         => 'IlluminateSupportFacadesRequest',
    'Response'        => 'IlluminateSupportFacadesResponse',
    'Route'           => 'IlluminateSupportFacadesRoute',
    'Schema'          => 'IlluminateSupportFacadesSchema',
    'Seeder'          => 'IlluminateDatabaseSeeder',
    'Session'         => 'IlluminateSupportFacadesSession',
    'SSH'             => 'IlluminateSupportFacadesSSH',
    'Str'             => 'IlluminateSupportStr',
    'URL'             => 'IlluminateSupportFacadesURL',
    'Validator'       => 'IlluminateSupportFacadesValidator',
    'View'            => 'IlluminateSupportFacadesView',
    'OAuth'           => 'ArtdarekOAuthFacadeOAuth',
    'Calendar'        => 'GoogleServiceCalendar'
),

композитор.в 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();
}

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

2 ответов


после добавления библиотеки google в блоке require вашего композитора.файл json, эта строка:

"google/apiclient": "dev-master"

run

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

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

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

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

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


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

когда я пытался использовать этот 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 по использованию пакета.

надеюсь, что это помогает