Как исправить ошибку скручивания «Не удалось разрешить хост: account-d.docusign.com% 2Foauth% 2Ftoken» в API Docusign в php - PullRequest
0 голосов
/ 10 октября 2019

Я перехожу по ссылке ниже:
https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-code-grant

Шаг 1 работает нормально, и я могу получить код авторизации
Шаг 2 Не работает, выдает ошибку "Не удалось разрешить хост: account-d.docusign.com% 2Foauth% 2Ftoken "

Запуск этого на сервере Apache, php 7.3, с использованием CURL.

$authcode = "";    
if(isset($_GET['code'])){    
    $authcode = $_GET['code'];    
}    

$headauth = base64_encode('bbc034da-a19f-48db-a841-25832e209a41:2f08bab1-2ccc-435f-a1f7-d43802b51255');    

$request_headers = array();    
$request_headers[] = 'Content-Type: application/x-www-form-urlencoded';    
$request_headers[] = 'Authorization: Basic '.$headauth;    

$ch = curl_init();    

$url = str_replace ( ' ', '%20', "https://account-d.docusign.com/oauth/token" );    

curl_setopt($ch, CURLOPT_URL,urlencode($url));    
curl_setopt($ch, CURLOPT_HEADER, 1);    
curl_setopt($ch, CURLOPT_POST, 1);    
curl_setopt($ch, CURLOPT_POSTFIELDS,"grant_type=authorization_code&code=".$authcode."&redirect_uri=http://192.168.2.56/testdocusign/test.php");  //Post Fields    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  0);    
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);    

$server_output = curl_exec ($ch);    
if (curl_errno($ch)) {    
    $error_msg = curl_error($ch);    
    print_r($error_msg);    
}    

curl_close ($ch);    

print_r($server_output) ;    

Я ожидаю, что результат будет примерно таким:

{    
    "access_token": "ISSUED_ACCESS_TOKEN",    
    "token_type": "Bearer",    
    "refresh_token": "ISSUED_REFRESH_TOKEN",    
    "expires_in": 28800    
}  

Но моя текущая ошибка:

Не удалось разрешить хост: account-d.docusign.com% 2Foauth% 2Ftoken

1 Ответ

0 голосов
/ 10 октября 2019

Как видите, URL неверен. вам нужно получить код доступа, полученный при первом вызове, который, как вы сказали, работает нормально, и добавить его во второй вызов вместо части% 2Foauth% 2Ftoken, которая, очевидно, является просто заполнителем для токена.

(редактировать: проблема была в неправильной кодировке URL, которая была виновником)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...