Yandex磁盘API无法使用访问令牌节点发出请求.js



我成功生成了一个访问令牌,但现在无法使用它。遗憾的是,没有官方的yandex节点库来使用API。有 2 个非官方的 npm 模块仅适用于服务器,但我希望它是本地主机。作为此类代码的示例,在这种情况下,我想显示磁盘中的所有文件。当然,我为我的应用程序启用了所有范围

request.get('https://cloud-api.yandex.net/v1/disk/resources/files/', {
'auth': {
'bearer': 'xxxxxxxxxxxxxxxxxxx'
}
}, function(err,httpResponse,body){ /* ... */ 
if(err) {
console.log('err: ' + err)
}
console.log('body: ' + body)
});

另外,如果我在浏览器中使用 https://cloud-api.yandex.net/v1/disk/resources/files?oauth_token=xxxxxxxxxxxxxx&oauth_client_id=xxxxxxxxxxxxxxxxxxx
或 https://cloud-api.yandex.net/v1/disk/resources/files?access_token=xxxxxxxxxxxxxx&client_id=xxxxxxxxxxxxxxxxxxx
,我会得到
{"消息":"?? ???????????.","描述":"未经授权","错误":"未经授权错误"}

有人有工作代码或知道为什么我会收到此消息?

现在我正在使用yandex-disk包。它为我的目的工作。

那我的步骤:

  1. 在Yandex誓言服务中注册应用程序。 之后,我可以获取有关我的应用程序的信息
  2. 通过调用 this 实现获取誓言令牌的访问方法。
  3. npm i yandex-disk
  4. 将代码插入索引.js

    const YandexDisk = require('yandex-disk').YandexDisk;
    const disk = new YandexDisk('YourOathTokenHere');
    console.log('disk', disk);
    disk.readdir('/', (err, response) => {
    console.log('callback error', err);
    console.log('callback response', response);
    });
    

只需包含这样的授权标头:

axios.get(encodeURI(`https://cloud-api.yandex.net:443/v1/disk/resources?path=${path}`), {
headers: {
'Authorization': `OAuth ${token}`
}
}).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});

最新更新