我正在尝试从本地主机连接到google API,但一直收到异常(键已更改-在下面的文本中)。
Warning: file_get_contents(compress.zlib://https://www.googleapis.com/books/v1/volumes?q=Henry+David+Thoreau&filter=free-ebooks&key=bItatTTTTT7amAHYSaROTTTTTbtttuuuuuuuu) [function.file-get-contents]: failed to open stream: operation failed in C:zendProjectzf2vendorgoogleapiclientsrcGoogleIOStream.php on line 115
我在浏览器中使用的代码直接来自API指南,内容如下:
$client = new Google_Client();
$client->setApplicationName("rent");
$service = new Google_Service_Books($client);
$optParams = array('filter' => 'free-ebooks');
$results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
我认为我的问题与配置文件有关,而且我正在本地主机开发服务器上工作。
'Google_Auth_OAuth2' => array(
'application_name' => 'www.example.com',
'client_id' => '4498xxxxx061-3333xxxx9pjcpkbqhoxxxxxxxxxxx.apps.googleusercontent.com',
'client_secret' => '8xxxxxxxxx333xxxxxxxxx',
'redirect_uri' => 'http://localhost',
'developer_key' => 'AxxxxxxzBjpxxxxxaxxxxxxZxxx1xxxxx',
在新的开发人员控制台中,我为项目创建了一个新的客户端ID,并插入了"client_ID"、"client_secret"等
我还为日历和书籍启用了相关的API。
我已经在我为谷歌字体找到的URL上测试了我的API密钥,所以我确信我有正确的开发者密钥。
我怀疑这个问题可能是关于uri字段中的本地主机,我需要在这里输入什么?
有人知道我做错了什么吗。
更新:我发现一篇帖子建议在这里获取HTTP响应代码:
服务器的响应是304-不确定这是否有助于
更新:@Carlos Roubles-是正确的,我使用了不正确的版本。万一其他人遇到这个问题,谷歌网站上的作曲家信息似乎不正确。
我以前使用过"google/apiclient":"1.0."这出现在谷歌文档中。我现在已经尝试了"google/apiclient":"1.",这似乎已经解决了问题。
这是file_get_contents
的问题,而不是api的问题。大多数人将file_get_contents更改为CURL
以访问远程文件。无论如何,我正在检查库,在所有stream.php文件中都找不到对file_get_contents的任何调用
https://github.com/google/google-api-php-client/blob/master/src/Google/IO/Stream.php
在第115行中,我们有一行注释,所以我想到的是yu没有使用库的最后一个版本。此外,我看到在这个版本中,他们使用fopen
发出请求。所以你可以尝试更新它,这可能会修复的问题