我刚在大学开始CS,想在假期里创建一个小的webdev项目。我创建了一个简单的联系人表单,要求用户提供一些数据(文本、下拉选项(。按下提交按钮后,我想对UiPath Orchestrator执行POST api调用,以触发机器人。。。
由于这是我第一次使用PHP,我不太确定如何处理这个问题。我可以从提交的表单中获取数据。但现在我正在努力使用API调用。我已经在Swagger UI和Postman中测试过了,它是有效的。
问题:我必须通过一个批处理程序id进行身份验证,该id也可以通过API调用检索。
问题:
-
创建一个负责API调用的新函数是否有意义,因为我可能想添加触发其他机器人程序进程的其他表单?
-
根据我的研究,我很确定我必须使用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,所以云可能有点不同。