2011-08-17 57 views
0

我正在调查使用Drupal 6中的服务模块从JSON格式的某些自定义视图中获取数据。我跟在http://drupal.org/node/308629的文章,创造了这个项目(推高至https://[email protected]/sharpred/ConsoleApplicationDrupal.git无效的API键

我第一次运行我的代码,我得到“无效的API密钥”,随后的运行中返回的VB版的“令牌之前已用于请重新尝试使用另一个nonce密钥“。第二个错误是有点虚假IMO,因为我的代码每次运行时都会创建一个新的随机数。

我还注意到,第一次运行在services_timestamp_nonce表中创建一个条目,其中只包含时间戳,但没有随机数或域值。如果我删除这条记录,它会回到“invalid api key”消息。

该代码未经验证,并且来自网站/admin/build/services/browse/views.get的方法调用也适用。

任何想法为什么这不起作用?

搜索谷歌,“无效API密钥”最常见的来源似乎是一个人使用的时间戳错误或者API密钥与创建哈希时使用的域不匹配。就我所见,我的情况也不是这样。我创建了一个用于创建时间戳和散列的代码,用于创建时间戳和散列表https://gist.github.com/1151222

任何人都可以帮助获取此过程的工作吗?

回答

0

在通过服务模块的代码进行拖网之后,我想到了这一点。我的多部分表单中的某些值没有用引号括起来,所以被services_key_auth模块处理为空值。这意味着在第一遍时,只有时间戳被写入nonce表,并且由于引号,计算出的散列与我的散列不匹配。在后续更新中,模块有效地搜索nonce值为null并在数据库中找到一个值,并返回之前使用过的结果。如果其他人得到这个问题,请把我的github项目链接到上面,看看我的代码。