-
-
Save visitdigital/58c71acb123870d1ac2ec714d7536587 to your computer and use it in GitHub Desktop.
<?php | |
$challenge = $_REQUEST['hub_challenge']; | |
$verify_token = $_REQUEST['hub_verify_token']; | |
// Set this Verify Token Value on your Facebook App | |
if ($verify_token === 'testtoken') { | |
echo $challenge; | |
} | |
$input = json_decode(file_get_contents('php://input'), true); | |
// Get the Senders Graph ID | |
$sender = $input['entry'][0]['messaging'][0]['sender']['id']; | |
// Get the returned message | |
$message = $input['entry'][0]['messaging'][0]['message']['text']; | |
//API Url and Access Token, generate this token value on your Facebook App Page | |
$url = 'https://graph.facebook.com/v2.6/me/messages?access_token=<ACCESS-TOKEN-VALUE>'; | |
//Initiate cURL. | |
$ch = curl_init($url); | |
//The JSON data. | |
$jsonData = '{ | |
"recipient":{ | |
"id":"' . $sender . '" | |
}, | |
"message":{ | |
"text":"The message you want to return" | |
} | |
}'; | |
//Tell cURL that we want to send a POST request. | |
curl_setopt($ch, CURLOPT_POST, 1); | |
//Attach our encoded JSON string to the POST fields. | |
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); | |
//Set the content type to application/json | |
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); | |
//Execute the request but first check if the message is not empty. | |
if(!empty($input['entry'][0]['messaging'][0]['message'])){ | |
$result = curl_exec($ch); | |
} | |
?> |
Add a line at 33.
$jsonDataEncoded = json_encode($jsonData);
Change line 38 to
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
Sometimes this needs to be done.
Hello Guys, My bot isn't working. Webhook is accepting the url but the bot is not responding.
@ravigohil999 are you still facing issue?
if yes,what error are you getting?
`
$input = json_decode(file_get_contents('php://input'), true);
// Get the Senders Graph ID
$sender = $input['entry'][0]['messaging'][0]['sender']['id'];
// Get the returned message
$message = $input['entry'][0]['messaging'][0]['message']['text'];
`
can you explain about some lines above
What about $input?
file_get_contents ??? and which file ?
Unsupported post request. Object with ID 'me' does not exist, cannot be loaded due to missing permissions, or does not support this operation.
How to save the sender messages to a file ?
this work today ? 2019- may ?
this work today ? 2019- may ?
still worked
excellent work! I've modified the code to redirect input messages to a Dialogflow bot and also to handdle pass_thread_control requests (to switch on/off bot allowing human interaction and avoiding bot answers when it should not, just moving conversation from Done to Inbox in Facebook Admin Panel)
file_get_contents('php://input') - empty! Please help to resolve this, what is wrong with FB settings?
Hi. This work perfect.
I have a just one question:
How to stop bot, when admin start chat with client?
I want to get the sender name or profile. How to do that?
I am using this,
$sender = $input['entry'][0]['messaging'][0]['sender']['id']; $url = "https://graph.facebook.com/v8.0/$sender?fields=first_name,last_name,profile_pic&access_token=" . $access_token; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch);
But I get the response,
{"error":{"message":"(#33) This object does not exist or does not support this action","type":"OAuthException","code":33,"fbtrace_id":"AiMUy1AR8LoGXvgta0vE2Of"}}
It looks like the $sender is not the actual user ID, How to get the actual user ID to get sender info.
Please help me. This is a roadblock for me.
Please help, dont work for me, I do not receive data from facebook.
update please!
I am assuming we need to put the page access token for the access token. Thanks for the code by the way.