【问题标题】:Adding Google php API for google calendar in laravel在 laravel 中为谷歌日历添加谷歌 php API
【发布时间】:2014-04-04 13:15:28
【问题描述】:

我想使用 Google php api 来访问日历。 我正在使用 laravel。我已经在 Composer 上添加了这个包,它下载得很好,这就是我必须与提供程序和别名或将 api 与我的应用程序链接的任何事情。我想调用日历类。 我对另一个库 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();
}

希望你能帮助我!谢谢!

【问题讨论】:

    标签: php laravel laravel-4 google-calendar-api google-api-php-client


    【解决方案1】:

    添加 google 库后,在 composer.json 文件的 require 块中,这一行:

    "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');
    

    当然,您可以将客户端 ID 和密码存储在配置文件中。

    您无需将库路径添加到提供程序列表中。

    【讨论】:

    • 我在 composer.json 文件的 require 块中添加 "google/apiclient": "dev-master" 后运行 composer update。它给出的错误类似于“您的要求无法解决为一组可安装的软件包。问题 1 - 照明/支持 v5.2.25 需要照明/合同 5.3.* -> 找不到匹配的软件包。 - 结论:删除 laravel/framework v4。 1.24"我是 laravel 新手,使用 laravel 4.1.24
    【解决方案2】:

    目前的形式(据我所知)这个库不是为了在 Laravel 中方便使用而设计的。它不包含 Laravel 服务提供者(将进入您的 providers 数组)或 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 指南使用包。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多