Mit*_*oto 6 twitter oauth node.js
在我的节点应用程序项目中,我已将Twitter API从v1.0迁移到v1.1.我在日志文件中发现了一些错误.
错误
{"message":"Could not authenticate you","code":32}
Run Code Online (Sandbox Code Playgroud)
原因
如果发布数据(到1.1/status/update)包括......,则会发生此错误
解
我修补了node-oauth的node_modules/oauth/lib/oauth.js(仅使用了node-twitter)...
从
327 if( (method == "POST" || method == "PUT") && ( post_body == null && extra_params != null) ) {
328 post_body= querystring.stringify(extra_params);
329 }
Run Code Online (Sandbox Code Playgroud)
至
327 if( (method == "POST" || method == "PUT") && ( post_body == null && extra_params != null) ) {
328 post_body= querystring.stringify(extra_params);
+331 post_body= post_body.replace(/\!/g, "%21")
+332 .replace(/\'/g, "%27")
+333 .replace(/\(/g, "%28")
+334 .replace(/\)/g, "%29")
+335 .replace(/\*/g, "%2A");
336 }
Run Code Online (Sandbox Code Playgroud)
Twitter API v1.0不需要此补丁.只有v1.1要求此补丁双重转义帖子正文.我认为我的补丁不是通用的,因为这种改变将使得无法将此库用于任何其他oauth服务......
我的问题
小智 1
我也经历过同样的问题。我尝试了 2 个不同的 twitter 库(node-twitter 和 ntwitter)。两者在 1.1 api 上都有同样的问题。你的修复似乎对我有用。感谢那!有趣的是,他们在第 66 行应用了相同的修复。不确定,但看起来这是 node-oauth 的一个错误。我首先会在那里报告。你的修复似乎并没有破坏我在 facebook 上所做的基本工作,所以我希望这是一个好兆头,表明此修复不会影响其他库。
| 归档时间: |
|
| 查看次数: |
3554 次 |
| 最近记录: |