Я испытываю Vimeo API и выполняю запросы, поскольку пакет nodejs для Vimeo в настоящее время не поддерживает Promises. Я делаю аутентификацию для наших пользователей, чтобы иметь возможность загружать на Vimeo. Тем не менее, у меня есть эта ошибка, как только я запросил токен доступа.
400 - {"error":"invalid_request",
"error_description":"The provided redirect uri does not match the one used to create the authorization code"}
Как указано в API Vimeo, вот как я создаю URL аутентификации:
const query = {
redirect_uri: `https://thisisasitefortesting.com/curriculum/redirect`,
response_type: 'code',
client_id: process.env.VIMEO_UPLOAD_CLIENT_ID,
scope: 'private create edit upload public',
state: 'hello world',
};
const URL = `https://api.vimeo.com/oauth/authorize?${qs.stringify(query)}`;
window.open(URL);
И вот как я запрашиваю токен доступа (который находится внутри функции Firebase, так как я не могу запросить токены доступа на стороне клиента):
try {
const { code } = req.body;
const options = {
body: {
grant_type: 'authorization_code',
redirect_uri: 'https://thisisasitefortesting.com/curriculum/redirect',
code,
},
headers: {
Authorization: `basic ${Buffer.from(`${vimeo.upload_id}:${vimeo.upload_secret}`).toString(
'base64'
)}`,
'User-Agent': 'Request-Promise',
'Content-Type': 'application/json',
Accept: 'application/vnd.vimeo.*+json;version=3.4',
},
uri: 'https://api.vimeo.com/oauth/access_token',
json: true,
method: 'POST',
};
const response = await rp(options);
return res.json({ accessToken: response.access_token });
} catch (error) {
return res.status(500).json({ error });
}
Оба URI одинаковы, но я все еще продолжаю получать это ошибка. Что бы я сделал? Спасибо всем, кто ответит.