GoogleAnalytics APIなど、Google Client LibraryのSDKを使用したプログラムを作る際、認証処理など、通信でエラーになる場合があります。
このような場合、デバッグログを出力させると問題の切り分けが容易になります。
以下のコードのように、Google_Config::setLoggerClass()の指定やGoogle_IO_Curlクラスのログレベル変更を行うことで、デバッグログの出力が可能となります。
// 動作のロギングクラスを指定する $config = new \Google_Config(); $config->setLoggerClass('Google_Logger_File'); $client = new \Google_Client($config); // cURLのログ出力をVERBOSEにする $client->setClassConfig('Google_IO_Curl', 'options', array( CURLOPT_VERBOSE => TRUE)); |
上記変更を行ったうえでプログラムを実行すると、下記のようなログが出力されます。
[04/May/2016:23:14:07 +0900] DEBUG: File cache miss {
"key": "...",
"file": "/tmp/Google_Client/..."
}
[04/May/2016:23:14:07 +0900] DEBUG: OAuth2 access token expired
[04/May/2016:23:14:07 +0900] INFO: OAuth2 access token refresh with Signed JWT assertion grants.
[04/May/2016:23:14:07 +0900] DEBUG: cURL request {
"url": "https://accounts.google.com/o/oauth2/token",
"method": "POST",
"headers": {
"content-type": "application/x-www-form-urlencoded",
"content-length": 761
},
"body": "grant_type=assertion&assertion_type=..."
}
* About to connect() to accounts.google.com port 443 (#0)
* Trying 216.58.197.173... * connected
* Connected to accounts.google.com (216.58.197.173) port 443 (#0)
* Initializing NSS with certpath: none
* Unable to initialize NSS
* NSS error -8023
* Closing connection #0
* Problem with the SSL CA cert (path? access rights?)
[04/May/2016:23:14:07 +0900] ERROR: cURL Problem with the SSL CA cert (path? access rights?) |
ログを見るとNSS error -8023と出ており、このエラーコードで調べると下記がエラーを引き起こした原因のようです。
A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot |
関連記事
コメントを残す