【发布时间】:2016-08-22 13:37:05
【问题描述】:
按照http://apidocs.teamup.com/ 此处的文档,我已经通过composer require 'guzzlehttp/guzzle:^6.0' 安装了 Guzzle 库...然后我生成了一个 API 密钥。
在他们提供的示例代码中,我尝试查询 Teamup API:
<?php
$client = new GuzzleHttp\Client(['headers' => ['Teamup-Token' => 'API KEY ']]);
$res = $client->get('https://api.teamup.com/ks73ad7816e7a61b3a/subcalendars');
echo $res->getStatusCode();
// "200"
echo $res->getHeader('content-type');
// 'application/json'
echo $res->getBody();
// {"subcalendars":[ ... ]}
?>
但是当我在浏览器上运行时无法得到任何响应。 但是,当我在终端上运行 curl 版本时
curl "https://api.teamup.com/ks73ad7816e7a61b3a/subcalendars"
-H "Teamup-Token: API KEY"
我得到了预期的响应。
第二次测试您的 API 密钥
我试过了:
<?php
$client = new GuzzleHttp\Client(['headers' => ['Teamup-Token' => 'API_KEY']]);
$res = $client->get('https://api.teamup.com/check-access');
if ($res->isSuccessful()) {
echo 'Your API key works!';
} else {
echo 'API key test failed: ' . $res->getBody();
}
?>
除了 curl 版本没有响应:
curl "https://api.teamup.com/ks73ad7816e7a61b3a/subcalendars"
-H "Teamup-Token: API_KEY"
有 json 格式的响应。显然我似乎做错了什么。会是什么呢?任何人? 谢谢你。
【问题讨论】:
-
我遇到了与
GuzzleHttp类似的问题。通过构造函数传递标题时,它没有正确放置标题。尝试使用request()方法并将标题放入其中。即:$objGuzzleClient = new GuzzleHttp\Client(); $o = $objGuzzleClient->request( "GET", "https://api.teamup.com/check-access", array("headers" => array("Teamup-Token" => "API_KEY")) ); var_dump($o->getStatusCode()); var_dump($o->getBody()); -
将您的示例代码插入我的 API KEY 但仍然没有响应。 @ʰᵈˑ