Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 18.02.2023
Сообщений: 4

Подключение Яндекс переводчик API v2

18.02.2023, 16:22. Показов 2414. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день
Сможет ли кто-то помочь с подключением Яндекс переводчик API v2 на nodejs?
В документации есть вариант на python, но при попытке переписать для nodejs результата нет.
https://cloud.yandex.ru/docs/t... /translate
Вложил вариант на python и набросок на node
Спасибо заранее если кто-то сможет помочь или подсказать

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const axios = require("axios");
 
const IAM_TOKEN =
  "XXXXXXXX";
const folder_id = "XXXXXXX";
const target_language = "ru";
const texts = ["Hello"];
 
const json = {
  targetLanguageCode: target_language,
  texts: texts,
  folderId: folder_id,
};
 
const headers = {
  "Content-Type": "application/json",
  Authorization: "Bearer (IAM_TOKEN)",
};
 
const response = axios.post(
  "https://translate.api.cloud.yandex.net/translate/v2/translate",
  json,
  headers
);
 
console.log(response.text);
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import requests
 
IAM_TOKEN = '<IAM-токен>'
folder_id = '<идентификатор каталога>'
target_language = 'ru'
texts = ["Hello", "World"]
 
body = {
    "targetLanguageCode": target_language,
    "texts": texts,
    "folderId": folder_id,
}
 
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer {0}".format(IAM_TOKEN)
}
 
response = requests.post('https://translate.api.cloud.yandex.net/translate/v2/translate',
    json = body,
    headers = headers
)
 
print(response.text)
Вложения
Тип файла: txt NODE.txt (516 байт, 11 просмотров)
Тип файла: txt PY.txt (543 байт, 13 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2023, 16:22
Ответы с готовыми решениями:

Подключение Яндекс Переводчик API к QT
Добрый день Я столкнулся с проблемой такой не знаю как подключить Яндекс Переводчик API к QT. Может кто то подскажет то уже день над этим...

Яндекс переводчик API
string a = &quot;answer &quot;; var answer = &quot;&quot;; var get = new HttpRequest(); string getgive =...

Переводчик с подключением Яндекс API
Консольное приложение. Задача такая. Входной файл - input.txt, в котором текст на каком либо языке (без примесей других языков),...

10
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
18.02.2023, 17:41
JavaScript
1
2
3
4
const headers = {
  "Content-Type": "application/json",
  Authorization: "Bearer (IAM_TOKEN)",
};

->

JavaScript
1
2
3
4
const headers = {
  "Content-Type": "application/json",
  Authorization: "Bearer (" + IAM_TOKEN + ")",
};
0
0 / 0 / 0
Регистрация: 18.02.2023
Сообщений: 4
18.02.2023, 18:26  [ТС]
Спасибо что откликнулись, к сожалению не помогло.
По логам похоже что я даже не передаю IAM_TOKEN в API

'IAM token or API key has to be passed in request'

Вопрос, я не правильно формирую headers или же не правильно пишу метод post?
0
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
18.02.2023, 19:01
Цитата Сообщение от danilaz87 Посмотреть сообщение
, к сожалению не помогло.
вы бы код исправленный показали, только не файлом а в тегах JS

по-моему так получше будет:
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const axios = require("axios");
 
const IAM_TOKEN =  "XXXXXXXX";
const folder_id = "XXXXXXX";
const target_language = "ru";
const texts = ["Hello"];
 
const body = {
 "targetLanguageCode": target_language,
    "texts": texts,
    "folderId": folder_id,
};
 
const headers = {
  "Content-Type": "application/json",
  "Authorization":  "Bearer (" + IAM_TOKEN + ")",
};
 
 
axios.post(  "https://translate.api.cloud.yandex.net/translate/v2/translate", {
     json : body,
    headers : headers
  })
  .then(function (response) {
     console.log(response)
  })
  .catch(function (error) {
    console.log( error);
  });


так получаю :
AxiosError: Request failed with status code 401

Потому что IAM-токена нет
и идентификатора каталога нет
у которого для аккаунта есть роль ai.translate.user.

а у вас с этим в порядке?
0
0 / 0 / 0
Регистрация: 18.02.2023
Сообщений: 4
18.02.2023, 19:03  [ТС]
С вашим вариантом та же ошибка AxiosError: Request failed with status code 401
С токеном и folderId всё в порядке, проверю в postman и питоне, подключается
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
18.02.2023, 20:04
danilaz87, пробуйте без скобок:
JavaScript
17
"Authorization":  `Bearer ${IAM_TOKEN}`,
1
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
18.02.2023, 20:14
Действительно, если зайти в документацию

https://cloud.yandex.ru/docs/t... /translate

Bash
1
2
3
4
5
curl --request POST \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${IAM_TOKEN}" \
  --data '@<путь_до_файла_json>' \
  "https://translate.api.cloud.yandex.net/translate/v2/translate"

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$IAM_TOKEN = '<IAM-токен>';
$folder_id = '<идентификатор каталога>';
$target_language = 'ru';
$texts = ["Hello", "World"];
 
$url = 'https://translate.api.cloud.yandex.net/translate/v2/translate';
 
$headers = [
    'Content-Type: application/json',
    "Authorization: Bearer $IAM_TOKEN"
];
 
$post_data = [
    "targetLanguageCode" => $target_language,
    "texts" => $texts,
    "folderId" => $folder_id,
];
 
$data_json = json_encode($post_data);
 
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
 
$result = curl_exec($curl);
 
curl_close($curl);
 
var_dump($result);


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import requests
 
IAM_TOKEN = '<IAM-токен>'
folder_id = '<идентификатор каталога>'
target_language = 'ru'
texts = ["Hello", "World"]
 
body = {
    "targetLanguageCode": target_language,
    "texts": texts,
    "folderId": folder_id,
}
 
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer {0}".format(IAM_TOKEN)
}
 
response = requests.post('https://translate.api.cloud.yandex.net/translate/v2/translate',
    json = body,
    headers = headers
)
 
print(response.text)
0
0 / 0 / 0
Регистрация: 18.02.2023
Сообщений: 4
18.02.2023, 20:26  [ТС]
Так тоже пробовал, к сожалению не помогло
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
18.02.2023, 20:32
Сохраните это изменение и внесите еще одно:
JavaScript
1
2
3
4
5
const response = axios.post(
  "https://translate.api.cloud.yandex.net/translate/v2/translate",
  json,
  { headers }
);
0
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
18.02.2023, 20:34
Цитата Сообщение от danilaz87 Посмотреть сообщение
Так тоже пробовал, к сожалению не помогло
Пробуй отсюда

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
https = require('https');
 
const IAM_TOKEN = 't1.9euelZrOy5vLz4vGysjNlozJnpOWy-3rnpWaiczIlo2QzM6cjY7JmcyVxs3l8_cRd0EB-u8PdmJW_N3z91ElPwH67w92Ylb8.LJyNBxfR45Ks3XclkYbBCeDczTIs6kgoTv2MGO4SJl-pOoLRh6LWNBFPkgNxi_1BAUWzvTTW1A57W5TK5AZjDg';
const FOLDER = 'AgAAAAAox4HrAATuwWgDrnxFAUMaoCBZS7wjyXQ'
 
var options = {
    hostname: 'translate.api.cloud.yandex.net',
    path: '/translate/v2/translate/',
    method: 'POST',
    headers: {
        'Content-Type': 'aaplication/json',
        'Authorization': 'Bearer ' + IAM_TOKEN
    }
}
 
var req = https.request(options, (res) => {
    console.log('STATUS: ' + res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        console.log('BODY: ' + chunk);
    });
})
 
req.write(`{
    "folder_id": "${FOLDER}",
    "texts": ["В этом примере показано, как перевести на русский язык две строки с текстом", "World is very big"],
    "targetLanguageCode": "en"
}`);
req.end();
 
var request = require('request');
 
request.post(
    'https://translate.api.cloud.yandex.net/translate/v2/translate/', {
        json: {
            "folder_id": FOLDER,
            "texts": ["Hello", "World"],
            "targetLanguageCode": "ru"
        },
        headers: {
            'Content-Type': 'aaplication/json',
            'Authorization': 'Bearer ' + IAM_TOKEN
        }
    },
    function(error, response, body) {
        console.log('respcode:', response.statusCode);
        console.log(body);
        if (!error && response.statusCode == 200) {
            console.log('response:', body);
        } else {
            console.log(error)
        }
    }
);
 
 
 
 
 
 
 
 
 
 
 
const axios = require('axios');
 
axios.post('https://translate.api.cloud.yandex.net/translate/v2/translate/', {
        "folder_id": FOLDER,
        "texts": ["Hello", "World"],
        "targetLanguageCode": "ru"
    }, {
        headers: {
            'Content-Type': 'aaplication/json',
            'Authorization': 'Bearer ' + IAM_TOKEN
        }
    })
    .then((res) => {
        console.log(res.data);
    }).catch((err) => {
        console.log(err);
    })
0
0 / 0 / 0
Регистрация: 06.10.2019
Сообщений: 1
06.04.2023, 16:05
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
const fetch = require("node-fetch");
 
 fetch('https://translate.api.cloud.yandex.net/translate/v2/translate', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': 'Api-key <апи ключ>'
        },
        body: JSON.stringify({ "folderId": "<идентификатор каталога>", "texts": ["Hello", "world"], "targetLanguageCode": "ru"})
      })
        .then(response => response.json())
        .then(response => console.log(JSON.stringify(response)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2023, 16:05
Помогаю со студенческими работами здесь

Примеры использования api яндекс переводчик
Пожалуйста дайте пример как использовать API яндекс переводчика. Дело в том, что в сети полно инфы как использовать на старой v1 версии, но...

Php переводчик (Api Яндекс) файлов txt
Здравствуйте. Нужно сделать Php переводчик, который будет выполняться с моего компьютера на другой язык (Api Яндекс) множества файлов в...

Консольный переводчик, используя Яндекс API или аналоги - как слать запросы?
Здравствуйте. Хочу написать консольный переводчик на C++, (используя Яндекс API или аналоги) Понял, что надо использовать запросы, но...

Яндекс переводчик
Здравствуйте. Возник вопрос: Подскажите как получить ответ от сервера в любом случае Написал переводчик с использованием api яндекса. ...

Авторизация в Яндекс и получение данных метрики через Яндекс API
Делаю приложение, которое должно авторизироваться в Яндексе, и получать данные метрики. Использую из документации код, делаю WebRequest,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru