如何集成到 PHP 中的 TeamUp API 日历?
How do I integrate to TeamUp API Calendar in PHP?
按照此处的文档 http://apidocs.teamup.com/ 我已经通过 composer require 'guzzlehttp/guzzle:^6.0'
安装了 Guzzle 库...然后我生成了一个 API 密钥。
根据他们提供的示例代码,我尝试了查询组队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 格式的响应。显然我似乎做错了什么。会是什么呢?任何人?
谢谢你。
看来我找到了解决问题的方法。
为了任何曾经或将要面临同样问题的人,这是我的解决方法。
创建由网络服务器提供的测试文件
打开命令 window 并切换到该目录
执行"composer install"。这将安装所需的 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
$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>';
应该可以!
按照此处的文档 http://apidocs.teamup.com/ 我已经通过 composer require 'guzzlehttp/guzzle:^6.0'
安装了 Guzzle 库...然后我生成了一个 API 密钥。
根据他们提供的示例代码,我尝试了查询组队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 格式的响应。显然我似乎做错了什么。会是什么呢?任何人? 谢谢你。
看来我找到了解决问题的方法。 为了任何曾经或将要面临同样问题的人,这是我的解决方法。
创建由网络服务器提供的测试文件
打开命令 window 并切换到该目录
执行"composer install"。这将安装所需的 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
$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>';
应该可以!