我已经在这个问题上工作了两个星期,但找不到适合我一生的解决方案。我没有找到任何不错的文档(在Drupal的网站上或其他地方),这一事实也无济于事。并且这里已经存在的问题已经过时了(Services 2.x)。
我正在尝试为Drupal Commerce支持的站点创建REST服务。目前,所有服务所需要做的就是允许对Order资源进行基本的CRUD操作,并通过OAuth进行保护,因此不需要OAuth 2.0。还必须使用服务器上的脚本来调用它,因此登录重定向是不可能的(所有操作都通过两足身份验证完成)。
当前堆栈为:
- PHP 5.3.15
- Drupal 7.15
- Commerce Kickstart配置文件(7.x-2.0-rc1)
- 服务7.x-3.2
- OAuth 7.x-3.0 + 18-dev
- OAuth身份验证7.x-3.2
- REST服务器7.x-3.2
- Commerce Services 7.x-1.x-dev(这是我添加了自定义订单代码的模块)
如果我使用OAuth PHP库并每次都调用令牌请求,则可以使Retrieve / Index函数适用于Orders(我什至不知道发生了什么,除非它可以进行身份验证...)。如果我尝试过帐到订单并创建订单,则即使禁用了OAuth,我也会从脚本获得406,从Google Chrome浏览器的REST控制台尝试直接过帐请求时得到401。
由于我不知道create函数内部发生了什么,这使调试成为一场噩梦。我尝试剥离其订单创建逻辑,然后回显请求有效负载。仍然会出现406/401错误。
我假设我收到401错误,因为订单需要用户验证(即使该服务的OAuth已关闭)。
我不明白为什么会出现406错误。我接受application / json,这是我的REST服务器设置要返回的内容。
在我注释掉订单创建逻辑之前,就没有创建订单。(这是我在网站上其他地方有效使用的信息。)
提前赞赏。
-T