是否可以先在授权的情况下在 PHP 中执行 POST API 调用?
Is it possible to perform a POST API call in PHP with authorization first?
我刚在大学开始学习 CS,想在假期创建一个小的 webdev 项目。我创建了一个简单的联系表单,要求用户提供一些数据(文本、下拉选项)。按下提交按钮后,我想对 UiPath Orchestrator 执行 POST api 调用以触发机器人...
因为这是我第一次处理 PHP 我不太确定如何解决这个问题。
我能够从提交的表单中获取数据。但现在我正在为 API 电话而苦苦挣扎。我已经在 Swagger UI 和 Postman 中对其进行了测试并且它有效。
问题:
我必须通过批处理程序 ID 进行身份验证,该 ID 也可以通过 API 调用检索。
问题:
创建一个负责 API 调用的新函数是否有意义,因为我可能想添加触发其他机器人进程的其他表单?
根据我的研究,我很确定我必须使用 cURL 调用(或者这是错误的?)..如果我需要在每次按下提交按钮时进行身份验证,怎么能检索令牌并将其作为实际 POST 调用的 header(或句柄 idk)参数传递?
如果您不能理解我的问题,非常抱歉!我会尽力重新制定它,但由于我对此完全没有经验,所以我希望你能原谅我。
期待您的帮助!
到目前为止,这是我的代码:
add_action('wpcf7_mail_sent','cf7_api_sender');
函数cf7_api_sender($contact_form){
$title = $contact_form ->title;
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。它会 return 类似于
{
"result": "HzptFsZpGMS64j5DTb4TqX-cHVv2AtC4noVCQrkHKr54r...",
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}
然后通过添加 header 项
在添加 Queue 项调用中使用该结果
"Authorization":"Bearer " & result ("Bearer HzptFsZpGMS64...")
这是针对 Orchestrator on-prem 2019.10 的,因此云可能略有不同。
我刚在大学开始学习 CS,想在假期创建一个小的 webdev 项目。我创建了一个简单的联系表单,要求用户提供一些数据(文本、下拉选项)。按下提交按钮后,我想对 UiPath Orchestrator 执行 POST api 调用以触发机器人...
因为这是我第一次处理 PHP 我不太确定如何解决这个问题。 我能够从提交的表单中获取数据。但现在我正在为 API 电话而苦苦挣扎。我已经在 Swagger UI 和 Postman 中对其进行了测试并且它有效。
问题: 我必须通过批处理程序 ID 进行身份验证,该 ID 也可以通过 API 调用检索。
问题:
创建一个负责 API 调用的新函数是否有意义,因为我可能想添加触发其他机器人进程的其他表单?
根据我的研究,我很确定我必须使用 cURL 调用(或者这是错误的?)..如果我需要在每次按下提交按钮时进行身份验证,怎么能检索令牌并将其作为实际 POST 调用的 header(或句柄 idk)参数传递?
如果您不能理解我的问题,非常抱歉!我会尽力重新制定它,但由于我对此完全没有经验,所以我希望你能原谅我。
期待您的帮助!
到目前为止,这是我的代码:
add_action('wpcf7_mail_sent','cf7_api_sender');
函数cf7_api_sender($contact_form){ $title = $contact_form ->title;
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。它会 return 类似于
{
"result": "HzptFsZpGMS64j5DTb4TqX-cHVv2AtC4noVCQrkHKr54r...",
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}
然后通过添加 header 项
在添加 Queue 项调用中使用该结果"Authorization":"Bearer " & result ("Bearer HzptFsZpGMS64...")
这是针对 Orchestrator on-prem 2019.10 的,因此云可能略有不同。