Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用REST API(使用JS)访问Firebase动态链接的错误请求_Javascript_Firebase_Google Cloud Platform_Analytics_Firebase Dynamic Links - Fatal编程技术网

Javascript 使用REST API(使用JS)访问Firebase动态链接的错误请求

Javascript 使用REST API(使用JS)访问Firebase动态链接的错误请求,javascript,firebase,google-cloud-platform,analytics,firebase-dynamic-links,Javascript,Firebase,Google Cloud Platform,Analytics,Firebase Dynamic Links,我正试图通过RESTAPI使用firebase动态链接实现一个简单的URL缩短器。 我准备了一个简单的异步JS函数进行测试(因为我没有在云函数中进行外部出口调用的计费帐户)。 代码如下: async function fetcher(keyAPI,tempURL) { let reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=${keyAPI}`; let parameter

我正试图通过RESTAPI使用firebase动态链接实现一个简单的URL缩短器。
我准备了一个简单的异步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));
        }
我收到一个错误的请求作为响应:

回应{ 类型:“cors”、“”、, 重定向:对, 现状:400, 好:错,, statusText:“错误请求”, 标题:标题, 正文:ReadableStream, bodyUsed:假 }


我需要帮助来调试它。

在firebase控制台中创建前缀链接URL后,请尝试以下操作,因为它是必需的参数:

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;
});
let-reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=`;
设参数={
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
“dynamicLinkInfo”:{
“域名前缀”:“[PREFIX_URL]”,
“链接”:“[您的链接]”,
},
“后缀”:{
“选项”:“短”
}
})
}; 
//获取响应,因为它返回上述挂起的承诺
返回等待获取(请求URL、参数)
.then(res=>res.json())
.catch(err=>err);
}
//信守诺言
然后(res=>{
控制台日志(res);
返回res;
});

在firebase控制台中创建前缀链接URL后,请尝试以下操作,因为它是必需的参数:

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;
});
let-reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=`;
设参数={
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
“dynamicLinkInfo”:{
“域名前缀”:“[PREFIX_URL]”,
“链接”:“[您的链接]”,
},
“后缀”:{
“选项”:“短”
}
})
}; 
//获取响应,因为它返回上述挂起的承诺
返回等待获取(请求URL、参数)
.then(res=>res.json())
.catch(err=>err);
}
//信守诺言
然后(res=>{
控制台日志(res);
返回res;
});

我以前的答案被删除了,我不知道为什么,但没问题 我早些时候就遇到了这个问题,并对此进行了一些研究。而且它起作用了。所以我把我所有的代码都清理干净,然后发布到Github上,这样这个疑问就可以消除了

所以,一些评论问如何使用这个,下面是答案

  • 您必须从CDN中添加lib或自托管它,最好是根据您的需要自定义代码。CDN链路-
  • 现在,当您添加lib后,尝试使用此函数调用它。 这将返回短链接
    makefdl(key、st、si、sd、domain、link)
    
  • 你把短链接拿回来
  • 注意:您必须等待API回复,因此请进行等待调用,如下所示

    异步函数链接(){
    var slink=等待makefdl(键、st、si、sd、域、链接);
    如果(slink!=null){
    控制台日志(slink);
    //在这里用短链接做点什么
    }
    }

    我以前的答案被删除了,我不知道为什么,但没问题 我早些时候就遇到了这个问题,并对此进行了一些研究。而且它起作用了。所以我把我所有的代码都清理干净,然后发布到Github上,这样这个疑问就可以消除了

    所以,一些评论问如何使用这个,下面是答案

  • 您必须从CDN中添加lib或自托管它,最好是根据您的需要自定义代码。CDN链路-
  • 现在,当您添加lib后,尝试使用此函数调用它。 这将返回短链接
    makefdl(key、st、si、sd、domain、link)
    
  • 你把短链接拿回来
  • 注意:您必须等待API回复,因此请进行等待调用,如下所示

    异步函数链接(){
    var slink=等待makefdl(键、st、si、sd、域、链接);
    如果(slink!=null){
    控制台日志(slink);
    //在这里用短链接做点什么
    }
    }