按照此处的文档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 "https://api.teamup.com/ks73ad7816e7a61b3a/subcalendars"
-H "Teamup-Token: API_KEY"
以json格式回复。显然,我似乎做错了什么。会是什么呢?任何人? 谢谢。
答案 0 :(得分:1)
似乎我找到了解决问题的方法。 为了任何人或将要面对同样的人,这是我的解决方案。
创建由Web服务器提供的测试文件
打开命令窗口并切换到该目录
执行&#34; composer install&#34;。这将安装所需的Guzzle库。 (这假设您在开发计算机上安装了php包管理器Composer。)
从网络浏览器访问php脚本。
你一定会得到答复。
<?php
include 'vendor/autoload.php';
define('API_KEY', 'Your_API_KEY');
/**
* Check API access
*/
$client = new GuzzleHttp\Client([
'headers' => ['Teamup-Token' => API_KEY],
// use verify = false in test mode only if you do not have a CA bundle
// properly configured, but this should generally not be needed
'verify' => true,
]);
$res = $client->get('https://api.teamup.com/check-access');
echo $res->getStatusCode();
// "200"
echo "<br /><br />";
echo $res->getHeader('content-type')[0];
// "application/json"
echo "<br /><br />";
echo '<strong>Response body</strong>';
// The (string) cast is needed to convert the body to a string, see https://stackoverflow.com/a/30549372/6512
$rawResponse = (string) $res->getBody();
echo '<pre>' . $rawResponse . '</pre>';
echo "<br /><br />";
echo '<strong>Formatted response body</strong>';
$json_string = json_encode(json_decode($rawResponse), JSON_PRETTY_PRINT);
echo '<pre>' . $json_string . '</pre>';
那应该有用!