Неверный запрос на доступ к Firebase Dynami c -ссылки с использованием REST API (с использованием JS) - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь реализовать простой сокращатель URL-адресов, используя firebase Dynami c ссылки через REST API.
Я подготовил простую функцию asyn c JS для тестирования (поскольку у меня нет биллинг аккаунта для выполнения внешних исходящих вызовов в облачных функциях).
Ниже приведен код:

async function fetcher(keyAPI,tempURL) {
        let reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=${keyAPI}`;
        let parameters = {
            method : "POST",
            headers: {
                'Content-Type': 'application/json'
            },
            body : JSON.stringify({
                "longDynamicLink": tempURL,
                 "suffix": {
                     "option": "SHORT"
                     }
                })
            };
            await fetch(reqURL,parameters)
            .then(res => console.log(res))
            .catch(err => console.log(err));
        }

Я получаю неверный запрос в качестве ответа:

Ответ {type: "cors", "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key= [MY_WEB_API_KEY_HERE] ", перенаправлено: true, status: 400, ok: false, statusText: «Bad Request», заголовки: Headers, body: ReadableStream, bodyUsed : false}

Мне нужна помощь в его отладке.

1 Ответ

0 голосов
/ 17 мая 2020

Попробуйте выполнить следующее после создания URL-адреса префиксной ссылки в консоли firebase, поскольку он требуется в качестве параметра:

let reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=<API_KEY_HERE>`;
let parameters = {
    method : "POST",
    headers: {
        'Content-Type': 'application/json'
    },
    body : JSON.stringify({                  
        "dynamicLinkInfo": {
            "domainUriPrefix": "[PREFIX_URL]",
            "link": "[YOUR_LINK]",
        },
        "suffix": {
                    "option": "SHORT"
            }
        })
    }; 

// Get response since it returns pending promise above
return await fetch(reqURL,parameters)
    .then(res => res.json())
    .catch(err => err);

}

// Fetch from Promise
sURL.then(res => {
    console.log(res);
    return res;
});
...