-
-
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?") | |
))); | |
} | |
?> |
@nikoboomer Sorry I didn't see your messages for some reason. If you have so many ideas, please contact me directly via mail. Don't reply cannot be attached to a rule, but you can move other rules higher in the list, then they will always be executed. Also only one rule can be triggered at a time. This has more advantages, because it allows to create conditions :)
@nikoboomer Sorry I didn't see your messages for some reason. If you have so many ideas, please contact me directly via mail. Don't reply cannot be attached to a rule, but you can move other rules higher in the list, then they will always be executed. Also only one rule can be triggered at a time. This has more advantages, because it allows to create conditions :)
Hello dear @T1mmyK0 there are times that it is better, other times it is not.
In any case, a checkable option to decide if the rule is IF or ELSEIF (as it currently is) would be great. It would help a lot.
@nikoboomer This is a good idea, thanks :)
Hello dear @T1mmyK0 It would be great if you implement it.
And the cron for the webserver every "X" (seconds, minutes or hours) would be great.
Much could be done with these tools.
For example:
Verify by php if we have new orders in woocommerce and according to the status of the order send a whatsapp message that the order is being processed, etc. The possibilities are limitless.
I hope you are encouraged to implement it.
I appreciate that you give me your email to send you ideas by that means.
@nikoboomer Only direct replies are possible. That's why there is no periodically webhook request. You can find my email directly within the app or in the Play Store listing of AutoResponder :)
@adith-suhas-sv Yea, that's right:)
كيف اربطه بخادم الويب
@737991796 Please check here: autoresponder.ai/webserver
Hi, thanks for the reply to both of you.
I'm sending a couple of ideas to the email.
Greetings and good luck
Hi @T1mmyK0 .. Can I show all data from MySQL as messages on WhatsApp? This is my code bellow for WA in AutoResponder:
elseif ($data->query->message === '/trial') { ($conn = new mysqli( 'localhost', 'u133xxxx_bot_smart', 'Teleee@123', 'u133xxxx_bot_wa' )) or die('Database Error'); if (!$conn) { die('Could not connect: ' . mysqli_error($conn)); } $i = 1; $data = mysqli_query($conn, 'SELECT * FROM history'); while ($d = mysqli_fetch_object($data)) { echo json_encode([ 'replies' => [['message' => 'Data ' .$i++ . ' : ' . $d->command. $d->sender]], ]); }
Do you have any suggestions for me to send all data from query SELECT * FROM history to WA? is my echo json_encode still wrong? Unfortunately in WA just show only 1 Data like this (but in my database I have 2 data) :
But I have tried in PHP with code likes still almost same with above in PHP :
<?php // connect to DB $conn = new mysqli("localhost", "u133xxxx_bot_smart", "Teleee@123", "u133xxxx_bot_wa") or die("Database Error"); if ( ! $conn ) { die( 'Could not connect: ' . mysqli_error($conn) ); } echo "Connected successfully"; $i=1; $data = mysqli_query($conn,"SELECT * FROM history"); while ($d = mysqli_fetch_object($data)) { echo "<br/>"; echo $i++; echo "-"; echo $d->command; echo "-"; echo $d->sender; }
And success to echo all data from database in website.Really need your help. Thanks before. Best regards.
Hi, this is Omar. I use this code to implement this solution:
$i = 1;
$consulta = "SELECT * FROM sar_cB_MultasT WHERE cB_NoPlaca = 'P123cbt' AND cB_Multa_pagada = 0";
$data = mysqli_query($dbc, $consulta);
$mensajes = [];
$mensaje = '';
if (mysqli_num_rows($data) > 0) {
while($fila = mysqli_fetch_array($data)){
$mensaje = $mensaje."Multa No. ".$i++.": Monto - Q".$fila['cB_M_monto']." Fecha: ".$fila['cB_M_fecha']."\n";
$mensajes['message'] = $mensaje;
}
echo json_encode(array("replies"=>array(
$mensajes,
array("message"=>"Ingrese el 9 para ir al inicio")
)));
}
Hope this can be useful for you
Hello @T1mmyK0
I've noticed that sometimes facebook market place notifications are contained in the $data variable in the [query] array
[groupParticipant] the name of the product and sometimes not.
Why is this?
With which application do you recommend using autoresponder to always get the name of the product via [groupParticipant] in Facebook Messenger MarketPlace?
@nikoboomer That may happen if the notification looks different. Can you please check how the notification of FM looks if this happens? Is there some pattern? For example always the first unread message etc?
@nikoboomer That may happen if the notification looks different. Can you please check how the notification of FM looks if this happens? Is there some pattern? For example always the first unread message etc?
Yes it is correct so notice sometimes the facebook notifications are different sometimes it contains the name of the product other times it doesn't.
I think FB autoresponder receives the $data from the notification right?
Is there an option to receive the $data of the message itself?
Have you tried any other option where the notification is always received with the product? either on facebook messenger lite or facebook workplace
It would be very useful to always get the product name from the marketplace messages
@nikoboomer Can you please send me screenshots of the different notifications to [email protected]?
This is important for me to correct reproduce the issue :)
@nikoboomer Can you please send me screenshots of the different notifications to [email protected]? This is important for me to correct reproduce the issue :)
Hello, I sent you the detailed information, thank you.
How do I create a welcome message from a web server?
How to write a welcome message How do I create a welcome message from a web server?
You either manage it yourself with your webserver or you use the welcome message option of AutoResponder and maybe connect your webserver with it. In this welcome rule you can then for example use custom headers to tell your webserver that it's the welcome rule and not a general one.
How to pass Answer Replacements value eg. %prev_message_ID_1% value to the php script which will be called in the submenu rule?
@Ravi-34 this is currently not possible. See if you can store these values on the webserver yourself for now :)
@Ravi-34 this is currently not possible. See if you can store these values on the webserver yourself for now :)
Oh Ok
A suggestion, In next version can you encode Answer Replacements value in the Headers Value input and then post the php script for us to use it from ther.
@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.
@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.
@CalonDirektur I don't fully understand what you mean. And having a database with numbers and users is the responsibility of the user who maintains the server. You can save messages using the Previous message and Previous reply answer replacements :)