我正在尝试在nodejs应用程序中实现Typeform。要获得typeform响应,我需要调用https://api.typeform.com/oauth/authorize?client_id={your_client_id}&redirect_uri=https://results-example.herokuapp.com/callback&scope={scope1}+{scope2}+{scope3},它会继续显示同意屏幕,列出我的应用程序的访问范围,并提示他们授予或拒绝访问我的应用程序的权限。在接受url之后,更改为重定向url,并在url查询中给出代码。但是,当我在节点应用程序中使用请求模块调用此typeform api时,它不会继续显示同意屏幕。那么,我如何绕过nodejs应用程序中的同意屏幕,或者获取我需要的代码?
以下是代码片段
app.get('/typeform', (req, res) => {
request('https://admin.typeform.com/oauth/authorize?client_id="client_id"&redirect_uri="hosturl/typeform"&scope=responses:read+responses:write', function (error, response, body) {
if(!error){
console.log(response, Body);
}
});
})
发布于 2021-01-14 02:30:31
看起来你在和oAuth打交道。
如果您需要代表某人访问typeform响应,则oAuth非常有用。通过oAuth,他们将授予您访问其帐户的权限。类似于你在互联网上随处可见的“用facebook/google签名”按钮。
如果你需要访问你自己的Typeform账户的响应,你可能不需要经历这个麻烦,你只需要在你的账户设置中创建一个个人令牌,并直接调用Responses API。
如果您想继续oauth路由,则按照Typeform Documentation上的说明,这是一个分两步进行的过程。
redirect_uri的url。在这里,您需要提取从请求传递的code查询参数。access_token,它将帮助您代表用户调用Typeform API。为此,您使用所有的parameters.https://api.typeform.com/oauth/token进行了API调用,一切都很顺利。您应该使用access_token返回一个JSON,现在您可以使用它来调用响应API。这有意义吗?
如果您使用的是Node.js,您可以使用一个名为Passport的库,它可以为您处理大部分工作。Here是一个关于如何在Typeform中使用它的例子。here是一个不使用它的例子,直接进行调用。
最后,如果您不熟悉oAuth,我建议您阅读Anabella Spinelli的this one等文章,这些文章对概念进行了分解。
https://stackoverflow.com/questions/65699518
复制相似问题