我正在尝试创建一个网站,从Podbean API获取我最喜欢的播客。
我以前使用过fetch
,但是这些API的设置要容易得多,并且没有身份验证部分。这就是我正在努力的目标。
所以这基本上是我以前使用过的:
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json))
据我了解,可以通过其他各种线程进行浏览:
我需要将client_id
和client_secret
的get请求发送到获取access_token
使用access_token
从那里获得访问权限,因此可以从podcast对象获取日期。
我将很高兴收到任何有关如何处理auth部分的指导,并且很显然让我知道我的某些思维过程是否完全错误。
提前谢谢!
答案 0 :(得分:2)
好的,所以我知道这个问题已经超过 2 年了,但我仍然会分享我的解决方案,因为我一直在努力理解如何使用这个 API。此解决方案仅适用于您是播客的所有者(或至少可以访问开发者帐户)。
API 的问题是,如果您不想使用 auth2(我仍然不确定它如何与 podbean 完全配合),您必须使用 POST 方法而不是 GET 方法来处理数据并提供参数(正文和标题)并使用 HTTP basic authentication scheme。他们的文档仅在 php 中,但通过一些研究,您会了解他们在做什么,可以找到适用于此解决方案的部分 here。
代码如下:
const fetch = require("node-fetch");
const btoa = require('btoa');
const client_id = 'Enter your client id';
const client_secret = 'Enter your client secret';
const uri = 'https://api.podbean.com/v1/oauth/token';
// Base 64 encode client_id and client_secret to use basic authentication scheme
const auth = "Basic " + btoa(client_id + ':' + client_secret);
// Set POST request params
const options = {
method: 'POST',
body: 'grant_type=client_credentials',
headers : {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": auth
}
}
// Fetch
fetch(uri, options)
.then(res => res.json())
.then(data => console.log(data))
我希望这对将来尝试通过 JavaScript 使用此 API 的任何人有所帮助。