问题标签 [drupal-services]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
665 浏览

objective-c - 如何处理与节点 ID 对应的响应对象?

编辑措辞..

我正在使用名为 Drupal-IOS-SDk 的第 3 方库将我的 Drupal 网站与我正在开发的 IOS 应用程序连接起来。我使用一种方法来索引我网站上的节点,我只是想知道是否有人知道如何处理来自我网站的响应。如果我运行与我的 index 方法(getNode 方法)类似的代码,可以提供一些上下文,它工作正常,我能够完美地访问我的响应,如下所示:

这是响应对象打印的内容(我没有包括整个内容,但您会明白的):

上面的代码获取节点数据并调用 responseObject 上的“objectforkey”方法让我可以访问数字或存储在我的 responseObject 中的任何其他内容。在我从响应对象中评论拉取数据的地方,我得到了整数“1390534644”,它正确对应于“更改”变量,正如您从上面的打印响应中看到的那样。上面的部分工作正常。这是我感到困惑的下一步:

在本节中,我索引所有节点并从每个节点获取字段,而不是仅从一个节点获取所有信息。我收到一个响应,显示到目前为止一切正常,因为响应包含正确的信息。不过我很困惑,因为我不确定我的响应对象到底是什么。它是一个节点集合,每个节点都有一个“nid”和“uri”,如下面的索引方法 responseObject 所示。例如,如果我想从下面打印区域中的第一个“nid”中获取值“650”,我将如何执行此操作?我不认为我可以像在第一个工作示例中那样调用“objectForKey”,因为每个节点都有一个“nid”。如果我告诉我的应用程序查找名为 nid 的键,它不知道要查找哪个键。如果没有唯一键,我如何访问数字 650?我在下面打印了我的索引方法 responseObject,所以你可以看到我在说什么。

0 投票
0 回答
380 浏览

php - 使用 Drupal 服务模块从 phonegap 应用程序上传图像到 Drupal 7

我想使用 Drupal 服务模块从 Phonegap 应用程序将图像上传到 Drupal 7 后端。出于测试目的,我已经使用核心 php 完成了它,并且一切正常,但我需要使用 Drupal 服务模块做同样的事情。

我正在做一个注册过程,用户可以从移动设备上传图像作为个人资料图片,我需要在 drupal 7 后端访问注册数据和图像。

核心PHP:-

电话间隙代码

0 投票
1 回答
521 浏览

drupal-7 - 使用 Drupal 中的服务注册个人资料图片

在使用 Service 3 进行用户注册期间,我一直在尝试上传用户个人资料图片,但到目前为止我还没有运气。我测试了在“图片”字段中传递硬编码的fid,还尝试传递“filemime”、“文件名”等字段,但它也不起作用。关于我需要填充哪些字段的任何想法?

我想它一定与这篇文章有关Using Drupal Services and DIOS SDK for setting user picture in iOS app 但它既没有也没有回答。

0 投票
3 回答
1503 浏览

json - 如何将 Drupal 服务默认响应格式更改为 JSON?

我正在使用 Drupal 服务和 REST 服务器来提供 API。
以前我只使用 1 种类型的响应 JSON,所以我不需要对 URL 进行额外的扩展“.json”。

现在我必须添加新的格式化程序 XML。
然后问题开始了,所有没有任何扩展名(.json 或 .xml)的 API 都将被设置为 XML 的默认输出。

我尝试追踪这个问题,最后发现相关变量是'rest_server_default_response_format'。
服务模块上的相关代码是getResponseFormatContentTypeNegotiations

所以我有 $mime_candidates[] 价值

即使 response_format 在第 87 行已设置为 json,但 mimeparse->best_match() 返回 'text/xml'。

覆盖它的最佳方法是什么?
我不认为编辑 getResponseFormatContentTypeNegotiations 是最好的方法。
有没有办法让 best_match 函数更喜欢 JSON 格式而不是 XML 格式?

谢谢你。

0 投票
1 回答
2054 浏览

drupal - 如何在 drupal 服务模块中使用会话身份验证

我有 Drupal 7 和 Services 3.x (3.10)。在 /admin/structure/services 页面中,我创建了一个端点和我的自定义模块:

现在我向我的 base_url/endpoint/user/login.json 发出一个 POST 请求(传递用户名和密码),我得到了 session_name 和 session_id。

如果我使用以下标头调用(例如)base_url/endpoint/customers/1.json:

我收到错误 403:用户 xxxxxxxxx 的访问被拒绝

问题是什么?

0 投票
0 回答
241 浏览

drupal-7 - 在 Drupal 服务中清理文本输入

我们在 Drupal 上启用了带有 REST 服务器的服务。我们的端点通过 Web 服务收集各种文本字段并创建自定义内容类型节点(基于 CCK 类型)。稍后我们的自定义内容类型节点使用 Drupal 视图显示给用户

在将来自 Web 服务的输入内容保存到外部自定义节点之前,应该进行什么样的清理?目前我们正在执行以下 check_plain($user_input);

这会导致特殊字符(如引号、& 等)显示为 ascii 代码时出现问题。在输入清理期间使用 check_plain() 似乎不正确,如此处所示。这是真的?

Drupal Services/Node 是否在内部保存处理清理或输入需要通过自定义代码清理,如果是,这些方法是什么?

0 投票
1 回答
111 浏览

angularjs - Angular $http useCredentials 返回错误

我正在尝试为 Drupal 7 网站构建 AngularJS 前端。

问题是,当我设置useCredentails为时true,我收到此错误。

跨域请求被阻止:同源策略不允许读取http://example.com上的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。

我在后端设置了以下标头:

  • 访问控制允许来源:*
  • 访问控制允许方法:GET、POST、DELETE、PUT
  • Access-Control-Allow-Headers:X-Requested-With、Accept、Content-Type、Cookie、X-CSRF-Token
  • 访问控制允许凭据:true

登录可以正常使用useCredentailsequals false。当更改为 true 时,我收到上述错误。

我希望能够设置useCredentailstrue,以便能够使用令牌身份验证。

有任何想法吗?

PS我使用带有会话身份验证的drupal 7服务模块。

0 投票
1 回答
170 浏览

php - 使用 xml-rpc 在 drupal 中将新用户注册为经过身份验证的用户

我正在尝试编写 PHP 脚本以使用服务模块在 drupal 7 中添加新用户。

到目前为止,我设法创建了一个,但作为匿名用户。当我以管理员权限运行脚本时,我收到通知:

尽管我在请求中发送了用户名和密码,但用户匿名 (403) 的访问被拒绝。

有什么想法我应该尝试做什么?

先感谢您。

0 投票
1 回答
65 浏览

c# - 无法使用生成的令牌访问第二个服务

我已经获得了两项服务,其中 ist 服务用于登录目的,它将返回一个 xml 节点令牌,我将在所有其他服务调用中将其添加为标头,

在附加的示例代码中,函数CreateObject()中有两个函数,我正在点击登录服务并且能够成功获取响应,并且从响应中我获取了令牌并使用令牌搜索(字符串令牌)调用其他函数并将令牌传入标题,但它给出了一个例外[System.Net.WebException] = {"The remote server returned an error: (403) Forbidden."}

但是当我在 chrome Advanced Rest Client 中看到它给出了预期的响应

任何朝着正确方向的建议或解决方案都将受到高度评价

请参阅下面的代码

0 投票
1 回答
1124 浏览

php - Drupal 7 - 无法显示服务端点

我无计可施,试图破译为什么这不起作用。我正在尝试从我的 Drupal 7 实例设置 REST 服务器。目前专注于不需要身份验证(一旦我设法让它说话,我会设置它)。

这是相关的代码位:

mymodule.module

资源/test_resources.inc

mymodule.services.inc

我删除了该服务的 UI 构建定义,可以看到它已成功从代码重新创建,另外,当我访问“api/mymodule/v1/”时,我看到消息“服务端点“mymodule_rest_api_v1”已成功设置.',所以我知道 hook_default_services_endpoint 和 hook_ctools_plugin_api 工作正常。

但是,无论出于何种原因,我都无法将 mymodule_services_resources 中定义的任何路径识别为有效。我已经删除了所有访问限制,多次清除缓存 - 总是,当我点击任何以“test”结尾的 url(例如https://[my-domain]/api/mymodule /v1/testhttps://[my-domain]/api/mymodule/v1/test/1都产生“未找到:找不到资源测试。”)。

任何意见,将不胜感激。