Имя: Пароль:
1C
 
Интеграция с ФулФилмент
0 lasermag
 
20.11.21
04:40
Добрый день.
Коллеги кто сталкивался подскажите пожалуйста.
Задача необходимо пройти авторизация.
В мануале к ФФ написано следующие

1.4 Авторизация
Для того чтобы начать работать с системой панелью фулфилмент необходимо авторизоваться.
Для это нужно отправить запрос на http://app.lk.reworker.ru/api/oauth/cdek c полученными ранее ключами CDEK:
Действительно в личном кабинете есть два ключа
publickey
secretkey

Также приведен пример запроса

$oauth = $api->setRequest(
            [
                'client_id' => 'reworker',
                'domain' => 'cdek',
                'grant_type' => 'password',
                'username' => $config['user'],
                'password' => $config['password'],
            ]
        )->request(Api::TYPE_POST, '/oauth', [])->getResult();

        $cache->getOptions()->setTtl($oauth['expires_in']);

        $cache->setItems($oauth);

        $accessToken = $oauth['access_token'];

Делаю процедуру

    publicKey =    "63864cc98ef7f";
    secret = "13b34c35-a533-6754-aa8e-d54ec7673778";
    
    СтруктураAPI = Новый Структура;
    СтруктураAPI.Вставить("ПолныйПуть", "http://app.lk.reworker.ru/api/oauth/cdek");
    СтруктураAPI.Вставить("Домен", "app.lk.reworker.ru");
    СтруктураAPI.Вставить("Порт", 80);
    СтруктураAPI.Вставить("АдресЗапроса", "/api/oauth/cdek");
            
    Соединение = Новый HTTPСоединение(СтруктураAPI.Домен, СтруктураAPI.Порт);
    Заголовки = Новый Соответствие;
    
    Заголовки.Вставить("Content-Type", "application/json");
    Запрос = Новый HTTPЗапрос(СтруктураAPI.АдресЗапроса, Заголовки);
    
    ЗаписьJSON = Новый ЗаписьJSON;            
    ЗаписьJSON.УстановитьСтроку();
    
    ПараметрыНТТРЗавпроса = Новый Структура;
    ПараметрыНТТРЗавпроса.Вставить( "client_id" , "reworker");
    ПараметрыНТТРЗавпроса.Вставить( "domain" , "cdek");
    ПараметрыНТТРЗавпроса.Вставить( "grant_type" , "password");
    ПараметрыНТТРЗавпроса.Вставить( "username" , publicKey);
    ПараметрыНТТРЗавпроса.Вставить( "password" , secret);

    ЗаписатьJSON(ЗаписьJSON,ПараметрыНТТРЗавпроса);            
    ЗапросКСерверу = ЗаписьJSON.Закрыть();
        
    Запрос.УстановитьТелоИзСтроки(ЗапросКСерверу, КодировкаТекста.UTF8);    
    Попытка
        Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
    Исключение
        Сообщить("Произошла сетевая ошибка!");
        ВызватьИсключение;
    КонецПопытки;

    ОтветСтрокой = Ответ.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(ОтветСтрокой);
    Структура = ЗаполнитьСтруктуруИзОтветаJSON(ЧтениеJSON);    
    ЧтениеJSON.Закрыть();

В ответ получаю
{"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html","title":"Not Found","status":404,"detail":"User do not exists or wrong password."}

Пароль и паспорт нормальные. но запрос не правильный. Подскажите пожалуйста кто сталкивался или знает. Как исправить ?
1 pechkin
 
20.11.21
13:48
как обычно БОМ
2 Fram
 
20.11.21
14:07
(0) ключи бы хоть замаскировал что ли
3 lasermag
 
20.11.21
15:05
ключи другие здесь не настоящие
4 Sinoptic
 
20.11.21
17:22
"/api/oauth/cdek/" - Добавь "/" в конец.
С Вайлдбериес пол дня про..я, кучу вариантов перепробовал, в том числе и БОМ смотрел, а дело было в одном символе.
5 lasermag
 
20.11.21
18:00
После запроса с "/api/oauth/cdek/" получил следующие


<!DOCTYPE html><html lang="en">
<head>
    <meta charset="utf-8">
<title>Apigility</title><meta name="viewport" content="width&#x3D;device-width,&#x20;initial-scale&#x3D;1.0"><link href="&#x2F;api-tools&#x2F;css&#x2F;bootstrap.min.css" media="screen" rel="stylesheet" type="text&#x2F;css">
<link href="&#x2F;api-tools&#x2F;css&#x2F;main.min.css" media="screen" rel="stylesheet" type="text&#x2F;css">
<link href="&#x2F;img&#x2F;favicon.png" rel="icon" type="image&#x2F;png"><script  src="&#x2F;api-tools&#x2F;js&#x2F;jquery.min.js"></script>
<script  src="&#x2F;api-tools&#x2F;js&#x2F;bootstrap.min.js"></script></head>
<body>
    <div class="container">
        <h1>A 404 error occurred</h1>
<h2>Page not found.</h2>


<p>The requested URL could not be matched by routing.</p>




    
<h3>No Exception available</h3>

    
    </div>
    <footer>
        <hr>
        <div class="container center-block"><div class="row">
            <div class="col-sm-4">
                &copy; Copyright 2013 - 2021                by <a href="http://www.zend.com">Zend Technologies</a> Ltd.
            </div>

            <div class="col-sm-4"><p class="center-block">
                Apigility version <strong>1.5.1dev</strong>
            </p></div>

            <div class="col-sm-4"><p class="pull-right">
                For more information <a href="https://apigility.org">apigility.org</a>
            </p></div>
        </div></div>
    </footer>
    </body>
</html>