2016-08-22 7 views
2

Следуя документации здесь http://apidocs.teamup.com/ Я установил библиотеку Guzzle через composer require 'guzzlehttp/guzzle:^6.0' ... Затем я сгенерировал ключ API.Как мне интегрироваться в TeamUp API Calendar в PHP?

На примере кода они предоставили я попытался запросов к API Teamup:

<?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 "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

У меня была аналогичная проблема с 'GuzzleHttp'. Он не помещал заголовки правильно, передавая их через конструктора. Попробуйте использовать метод 'request()' и поместив туда заголовок. Т.е.: '$ objGuzzleClient = new GuzzleHttp \ Client(); $ o = $ objGuzzleClient-> request ( "GET", "https://api.teamup.com/check-access", массив ("headers" => массив ("Teamup-Token" => "API_KEY ")) ); var_dump ($ o-> getStatusCode()); var_dump ($ o-> getBody()); ' –

+0

Взял ваш пример кода, вставил мой API-ключ, но ответа еще не получил. @ ʰᵈˑ – bmm

ответ

0

Кажется, я нашел способ исправить мою проблему. Ради кого-либо, у кого есть или когда-либо, вы увидите то же самое, вот мое исправление.

  1. клеть-й тестовый файл обслуживается веб-сервером

  2. Откройте окно командной строки и перейдите в этот каталог

  3. Execute «композитор установки». Это установит требуемую библиотеку Guzzle.

  4. Предполагается, что на вашем компьютере разработки установлен менеджер компоновки пакетов php.

  5. Доступ к скриптам php из веб-браузера.

Вы обязательно получите ответ.

<?php 

include 'vendor/autoload.php'; 

define('API_KEY','Your_API_KEY'); 

/** 
* Check API access 
*/ 

$client = new GuzzleHttp\Client([ 
    'headers' => ['Teamup-Token' => API_KEY], 
    'verify' => false // use verify = false 
    //in test mode only to prevent error message about self-signed certificate. 
]); 
$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 />"; 
$json_string = json_encode(json_decode($res->getBody()), JSON_PRETTY_PRINT); 
echo '<pre>' . $json_string . '</pre>'; 

Это должно сработать!

 Смежные вопросы

  • Нет связанных вопросов^_^