有没有可能先通过授权在PHP中执行POST API调用



我刚在大学开始CS,想在假期里创建一个小的webdev项目。我创建了一个简单的联系人表单,要求用户提供一些数据(文本、下拉选项(。按下提交按钮后,我想对UiPath Orchestrator执行POST api调用,以触发机器人。。。

由于这是我第一次使用PHP,我不太确定如何处理这个问题。我可以从提交的表单中获取数据。但现在我正在努力使用API调用。我已经在Swagger UI和Postman中测试过了,它是有效的。

问题:我必须通过一个批处理程序id进行身份验证,该id也可以通过API调用检索。

问题:

  1. 创建一个负责API调用的新函数是否有意义,因为我可能想添加触发其他机器人程序进程的其他表单?

  2. 根据我的研究,我很确定我必须使用cURL调用(或者这是错误的吗?(。。如果每次按下提交按钮时我都需要进行身份验证,那么如何检索令牌并将其作为实际POST调用的头(或句柄idk(参数传递?

如果你不能理解我的问题,我很抱歉!我会尽我最大的努力重新制定它,但由于我根本没有经验,我希望你能原谅我。

已经在期待你的帮助了!

这是我迄今为止的代码:

add_action('pcf7_mail_sent','cf7_api_sender'(;

函数cf7_api_sender($contact_form({$title=$contact_form->标题

if ($title === 'MA_Demo'){
$submission = WPCF7_Submission::get_instance();
if ($submission){
$posted_data = $submission->get_posted_data();

$firstname = $posted_data['Firstname'];
$lastname = $posted_data['Lastname'];
$department = $posted_data['Departement'][0];
$workload = $posted_data['Workload'][0];

/*
this is what I found so far but ofc it does not work at all.. do I have to put the body (itemData) into the args? 
and where can i pull the beacon token and add it?
$url = '"https://cloud.uipath.com/..../..../orchestrator_/odata/Queues/UiPathODataSvc.AddQueueItem"
$args =[
accept: application/json
X-UIPATH-OrganizationUnitId: .....
{  "itemData": {    "Name": "...",    "Priority": "...",    "Reference": "...",    "SpecificContent": {"key1": "Rick ", "key2": "Roll"}  }}
]
*/
/* this was to test if it works to pull data 
$myfile = fopen("data.txt", "w") or die("Unable to open file!");
$txt = $firstname.$lastname.$department.$workload;
fwrite($myfile, $txt);
fclose($myfile);
*/
}
}

}

首先,您需要使用租户、用户名和密码调用/api/Account/Authenticate。它会返回类似的东西

{
"result": "HzptFsZpGMS64j5DTb4TqX-cHVv2AtC4noVCQrkHKr54r...",
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}

然后,通过添加标题项,在添加队列项调用中使用该结果

"Authorization":"Bearer " & result  ("Bearer HzptFsZpGMS64...")

这是针对Orchestrator的prem 2019.10,所以云可能有点不同。

相关内容

  • 没有找到相关文章

最新更新