无效的API密钥



我正在研究使用Drupal 6中的services模块以JSON格式从一些自定义视图中获取数据。我跟随http://drupal.org/node/308629上的一篇文章,创建了这个项目的vb版本(推到https://sharpred@github.com/sharpred/ConsoleApplicationDrupal.git)

我第一次运行我的代码,我得到"无效的API密钥",随后运行返回"令牌已被用于以前的请求。用另一个nonce键重试。第二个错误有点假,因为我的代码每次运行时都会创建一个新的随机nonce。

我还注意到,第一次运行在services_timestamp_nonce表中创建了一个条目,该条目仅包含时间戳,但不包含nonce或域值。如果我删除这条记录,它会回到"无效api密钥"消息。

代码工作未经身份验证和方法调用从/admin/build/services/browse/views。进入网站也可以。

有什么想法,为什么这不起作用?

搜索谷歌,"无效api密钥"的最常见来源似乎是使用的时间戳错误或api密钥与创建哈希时使用的域不匹配。在我看来,这两种情况都不对。我创建了用于在https://gist.github.com/1151222

上创建时间戳和哈希值的代码要点。

有谁能帮助让这个过程工作吗?

我在浏览了services模块的代码后发现了这一点。我的多部分表单中的一些值没有用引号括起来,因此被services_key_auth模块作为空值处理。这意味着在第一次传递时,只有时间戳被写入nonce表,并且由于引号的原因,计算的哈希值与我的哈希值不匹配。在随后的更新中,该模块有效地搜索nonce值为null,并在数据库中找到一个值,返回之前使用过的结果。如果有人得到这个问题,拉我的github项目上面链接,看看我的代码。

相关内容

  • 没有找到相关文章

最新更新