从Drupal 7向外部API进行REST调用

时间:2019-07-17 22:26:14

标签: api drupal webforms

我们有一个老化的D7网站,该网站使用Webform模块将电子邮件发送到我们组织的ServiceNow平台。 SN小组希望要求使用SN API来处理Web表单提交。

D7甚至有可能吗? Webform似乎仅通过smtp发送电子邮件,而FAPI似乎仅适用于传入/内部REST调用。

为清楚起见,我们需要从 D

发送REST调用

从D7升级到升级至少还有一年的时间,所以我必须在其生态圈内开展工作。

1 个答案:

答案 0 :(得分:1)

我看不到这样做的直接方法,但是这就是我的方法:

您熟悉Drupal钩子吗?这就是我要走的路。

Webform模块具有一些挂钩,我将尝试使用这些2:

  • hook_webform_submission_create_alter
  • hook_webform_submission_presave

取决于您的需求。浏览模块文件夹内的 webform.api.php ,以了解更多详细信息。

一个简单且通用的示例:

创建一个新模块,假设为webform_mailing,然后创建一个连接到Webform模块的函数,如下所示:

<?php

function webform_mailing_webform_submission_create_alter(&$submission, &$node, &$account, &$form_state) {
    // Do your API calls here
}

当提交Webform时,您的功能将运行。然后,您可以使用参数,例如$submission来获取值,调用您的API即可!

注意:请注意不要修改$submission,因为您看到此值是通过引用传递的,因此,如果更改它,则可能会弄乱表单提交数据。

我希望这会有所帮助