我成功生成了访问令牌,但现在我无法使用它。遗憾的是,没有正式的yandex节点库可以使用API。有2个非官方的npm模块只能用于服务器,但我想要localhost。作为这样的代码的示例,在这种情况下,我想显示我的磁盘中的所有文件。当然,我为我的应用程序启用了所有范围
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
在我的浏览器中,我会得到
{“message”:“?? ???????????。”,“description”:“未经授权”,“错误”:“UnauthorizedError”}
有人有工作代码或想法为什么我收到这条消息?
答案 0 :(得分:2)
现在我正在使用yandex-disk包。它符合我的目的。
我的步骤:
将代码插入index.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);
});
答案 1 :(得分:0)
只包括这样的授权标头:
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);
});