Имя: Пароль:
1C
1С v8
1с8 и API Яндекс.Маркета. Не могу получит токен. Invalid Token
0 Valeron84
 
11.10.16
10:10
Добрый день. Есть простенький код. ПОст запрос в яндекс.АПИ
            
HTTPConnect = новый HTTPСоединение("api.partner.market.yandex.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL);  
            
            Заголовки = Новый Соответствие;
            Заголовки.Вставить("Content-Type","application/json; charset=utf-8");
            Заголовки.Вставить("Authorization", "OAuth oauth_token=" + Токен + ", oauth_client_id=" + ИДПриложения);
            
            HTTPЗапрос = Новый HTTPЗапрос("/v2/campaigns/"+ЭкранироватьFloat(campaignId)+"/orders/"+ЭкранироватьFloat(market_order)+"/status", Заголовки);
            HTTPЗапрос.УстановитьИмяФайлаТела(ИмяИсходящегоФайла);

            
            HTTPConnect.ОтправитьДляОбработки(HTTPЗапрос,ИмяВходящегоФайла);

ИДприложение я беру в приложении, которое зарегистрировал в https://oauth.yandex.ru/
Отладочный Токен - я "беру из URL", который получается если в строку браузера вбить https://oauth.yandex.ru/authorize?response_type=token&client_id=<;идентификатор приложения>

От яндекса приходит ответ - 403 - Invalid Token.
Есть идеи что ему не нравится, не хватает?
1 MrStomak
 
11.10.16
10:43
Откуда взято описание заголовков http? Почему в заголовке Authorization перечислены через запятую с пробелом два параметра?
2 Valeron84
 
11.10.16
11:00
Вот отсюда
https://tech.yandex.ru/market/partner/doc/dg/concepts/authorization-docpage/


Авторизационные данные могут быть переданы в запросе несколькими способами (способы указаны в порядке приоритета):
в HTTP-заголовке Authorization:
Authorization: OAuth oauth_token="авторизационный_токен", oauth_client_id="идентификатор_приложения"
3 Valeron84
 
11.10.16
12:03
разобрался..
В константа в1с была длиной 25 символов, а код ИДПриложения и Токен более 30.

Сейчас выскочила новая ошибка.
code="405"><message>Request method &apos;POST&apos; not supported
4 MrStomak
 
11.10.16
13:16
(3) Ну читай в документации каким методом, если не post, там нужно этот запрос выполнять.