ウェブサイトのログインシステムをLightOpenIDからGoogleのOauth 2.0に更新しています。
Client.phpとService/Oauth2.phpが必要な場合、エラーが発生します
致命的なエラー:クラス「Google_Service」が/home/myname/repos/website_current/lib/google-api-php-client/src/Google/Service/Oauth2.phpの32行目に見つかりません
私が使用しているコード(login.phpファイルから)は次のようになります
require_once(dirname($_SERVER['DOCUMENT_ROOT']).'/lib/autoload.php');
require('Google/Client.php');
require('Google/Service/Oauth2.php');
echo "exit";
exit();
PHP.ini(/etc/php5/Apache2/php.ini内)にインクルードパスを次のように追加しました
include_path = ".:/usr/local/lib/php:/home/myname/repos/website_current/lib/google-api-php-client/src"
したがって、私のOauth2.phpファイルは、「Service.php」の1つ上のフォルダであるクラス「Google_Service」を含む他のインクルードを認識できないようです。
私のフォルダ構造は次のようになります。
lib/
... autoload.php
... functions.php
... google-api-php-client/
... src/
... Google/ (etc etc)
public_html/
... login/
...login.php
なぜこれが起こっているのか分かりません。インクルードパスが表示され、phpinfo()を使用してインクルードパスとして表示されます。誰かが私にいくつかの洞察を教えてもらえますか?
必ず行を追加してください[〜#〜] before [〜#〜]他のGoogleの「require_once」行。
require_once 'google-api-php-client/autoload.php';
私はそれを最後に持っていました、そしてそれは私が良い10分間頭を掻いた。
github の指示に従って:
require_once 'google-api-php-client/autoload.php'; // or wherever autoload.php is located
あなたの場合、上記のインクルードURLは正常に機能するはずです。
2016年11月現在
require_once ... 'vendor/autoload.php';
これを行う新しい方法(2016年初頭頃)は
require_once("Google/autoload.php");
(インクルードパスが/ path/to/google-api-php-client/srcを持つようにすでに設定されていると仮定します)
このバージョンへ https://github.com/google/google-api-php-client これは可能な解決策です
set_include_path("google-api-php-client/src/" . PATH_SEPARATOR . get_include_path());
//.....
require_once 'Google/Service.php';
//.....
GoogleAPI統合を使用している間
致命的なエラー:クラス 'abc'が見つかりません
上記のcomposer.json
にあるライブラリと、実際に自動ロードされているライブラリとの間に間違いなく何かが異なる場合、エラーが発生します。
私のcomposer.json
で同じ問題が変更されました
{"require": {"google/apiclient": "1.0.*@beta"}}
に
{"require": {"google/apiclient": "2.0.*"}}
次に、php composer.phar update
を実行します(.phar
ファイルに正しいパスを指定してください)
デュランダルが投稿したものに従った後、私はそれを試しましたが、私にとっての新しい道は:
require_once 'google-api-php-client/src/Google/autoload.php';
これを変更すると、機能しました。助けてくれてありがとう。
現在は非推奨であり、サブGoogleディレクトリに移動されています。新しいデフォルトパスは次のとおりです。google-api-php-client-master\src\Google\autoload.php