Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

GoogleカレンダーAPIのインストールがうまくいかないWindows10

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

目次

環境

  • Windows10
  • composer
  • googleapi 2.0

手順など

Google Calendar API と PHP で 予定の取得と追加をしてみるよ(PHP編) | 東京上野のWeb制作会社LIG

こちらを参考にcomposerでgoogleapiをインストールしようとしたのだけれど失敗する。

Failed to download google/apiclient-services from dist: The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)

こちらの記事でも、2.0はインストールできなかった、とある。

Google Analytics API(Management API)でビュー情報を取得する - bz0のプログラミングログ

こちらの記事でもそれらしき記述がある。

Cannot install v0.72 on Windows via composer · Issue \#143 · googleapis/google-api-php-client-services · GitHub

By moving my source folder to the root of the drive, i was able to install all packages via composer. Seems to be a problem with the maximum path length on ntfs/windows drives.

インストールディレクトリをドライブ直下にしたらインストールできたとのこと。Windowsファイルシステムの、パスの長さの制限ではないか、との見解。

ファイルやパスの文字列長と文字コードの問題 - マイクロソフト系技術情報 Wiki

実際、インストールディレクトリの階層を上に移動してみたところ、失敗していたインストールが成功した。

エラー

なんとかイベントの追加はできたものの、PHP 7.2 だとエラーが出るようだ。

Warning: count(): Parameter must be an array or an object that implements Countable in /home/solitaire/www/workday_register/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 67

php - Grizzle Error count(): Parameter must be an array or an object that implements Countable in - Stack Overflow

php - Grizzle Error count(): Parameter must be an array or an object that implements Countable in - Stack Overflow

  "require": {
        "guzzlehttp/guzzle": "~5.3.1"
    }

厳密には"guzzlehttp/guzzle": "~5.3.1" をcomposer.json に追記してcomposer updateした。そしてvendorフォルダをサーバーに再アップロード。エラー消えた。