【发布时间】:2025-12-06 11:40:01
【问题描述】:
我一直在尝试连接到保管箱服务器并使用 api,但我在第一步本身就失败了。当我请求请求令牌时,我在 nodejs 中收到 Bad oauth_signature 错误。
我用来连接api的代码如下。(我使用https://github.com/sintaxi/node-dbox/blob/master/README.md library/sdk for nodejs)
/*
* dropbox handlers controller.
*/
var dbox = require('dbox')
,querystring = require("querystring")
var client = dbox.createClient({
app_key : 'my-key', // required
app_secret : 'my-secret', // required
root : 'sandbox' // optional (defaults to sandbox)
})
exports.index = function(req, res){
client.request_token(function(status, reply){
console.log(status)
console.log(reply)
// {
// oauth_token : "h89r0sdfdsfwiko", // required
// oauth_token_secret : "8hielfflk7100mv", // required
// }
})
我在控制台中得到的结果如下
c:\tmp\dropbox>node app.js Express 服务器在开发模式下监听 3000 端口 oauth_consumer_key=[我的密钥]&oauth_signature=faawn09ehmfe25i%2526&oauth_ti mestamp=1324643574&oauth_nonce=132464357437334176&oauth_signature_method=PLAINTE XT&oauth_version=1.0 403 { '{"error": "oauth_signature_method 的错误 oauth_signature \'PLAINTEXT\'"}': u 未定义}
非常感谢您对此的任何帮助。 提前致谢
【问题讨论】:
-
感谢您的帮助。但是我在尝试了不同的方式并浏览了很多之后发布了这个。你发布的链接对我没有帮助:(
-
谢谢大家。问题解决了。如果有人有类似的问题,请使用我在第一篇文章中提到的相同库,但在 ../dbox/lib/oauth.js 文件中找到以下行 options["oauth_signature_method"] = "PLAINTEXT",并更改它to options["oauth_signature_method"] = "HMAC-SHA1",
-
我之前忘记提到的另一个修改是版本 1 的所有 url 都不起作用。相反,像api.dropbox.com/0/oauth/access_token 这样的网址正在工作。请注意 url 中的 0 而不是 1。如果有 Dropbox 开发人员正在观看此内容,您能告诉我问题出在哪里吗?
-
/0/ url 仅适用于在 v1 为 v1 之前创建的旧应用密钥。展望未来,所有 API 调用都必须指向 /1/ 端点。关于签名问题,看看你是否可以让 ouath_signature_method="PLAINTEXT" 工作。使用纯文本“签名”,您不需要包含随机数或时间戳,创建“签名”要简单得多。
标签: node.js dropbox-api