-
-
Save T1mmyK0/2e8863919ad9523e12710d844859dd02 to your computer and use it in GitHub Desktop.
<?php | |
// required headers | |
header("Access-Control-Allow-Origin: *"); | |
header("Content-Type: application/json; charset=UTF-8"); | |
header("Access-Control-Allow-Methods: POST"); | |
header("Access-Control-Max-Age: 3600"); | |
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); | |
// add this php file to your web server and enter the complete url in AutoResponder (e.g. https://www.example.com/api_autoresponder.php) | |
// to allow only authorized requests, you need to configure your .htaccess file and set the credentials with the Basic Auth option in AutoResponder | |
// access a custom header added in your AutoResponder rule | |
// replace XXXXXX_XXXX with the name of the header in UPPERCASE (and with '-' replaced by '_') | |
$myheader = $_SERVER['HTTP_XXXXXX_XXXX']; | |
// get posted data | |
$data = json_decode(file_get_contents("php://input")); | |
// make sure json data is not incomplete | |
if( | |
!empty($data->query) && | |
!empty($data->appPackageName) && | |
!empty($data->messengerPackageName) && | |
!empty($data->query->sender) && | |
!empty($data->query->message) | |
){ | |
// package name of AutoResponder to detect which AutoResponder the message comes from | |
$appPackageName = $data->appPackageName; | |
// package name of messenger to detect which messenger the message comes from | |
$messengerPackageName = $data->messengerPackageName; | |
// name/number of the message sender (like shown in the Android notification) | |
$sender = $data->query->sender; | |
// text of the incoming message | |
$message = $data->query->message; | |
// is the sender a group? true or false | |
$isGroup = $data->query->isGroup; | |
// name/number of the group participant who sent the message if it was sent in a group, otherwise empty | |
$groupParticipant = $data->query->groupParticipant; | |
// id of the AutoResponder rule which has sent the web server request | |
$ruleId = $data->query->ruleId; | |
// is this a test message from AutoResponder? true or false | |
$isTestMessage = $data->query->isTestMessage; | |
// process messages here | |
// set response code - 200 success | |
http_response_code(200); | |
// send one or multiple replies to AutoResponder | |
echo json_encode(array("replies" => array( | |
array("message" => "Hey " . $sender . "!\nThanks for sending: " . $message), | |
array("message" => "Success ✅") | |
))); | |
// or this instead for no reply: | |
// echo json_encode(array("replies" => array())); | |
} | |
// tell the user json data is incomplete | |
else{ | |
// set response code - 400 bad request | |
http_response_code(400); | |
// send error | |
echo json_encode(array("replies" => array( | |
array("message" => "Error ❌"), | |
array("message" => "JSON data is incomplete. Was the request sent by AutoResponder?") | |
))); | |
} | |
?> |
@T1mmyK0 In a rule, can we set a fixed reply message and also then connect to our web server?
Example. In a rule, show a reply message "Please Wait...." and then show the replies from the web sever code.
Is this possible in the app now or technically possible in later version?
Thanks
@Ravi-34 No, I think it's not needed. Because as a user I'm waiting for the reply anyways. And if I leave the chat I only want to receive a notification about the final reply.
@Ravi-34 No, I think it's not needed. Because as a user I'm waiting for the reply anyways. And if I leave the chat I only want to receive a notification about the final reply.
@T1mmyK0 Thanks for reply.
Just had a thought, it would be nice from our side to inform user that information has received and also is being processed.
@Ravi-34 Yea, would be cool too. But I think it makes things just way more complicated.
@Ravi-34 Great idea! I'm currently adding answer replacements for the headers value field. It will be available in the next version. There is no specific server side code necessary.