我正在聊天机器人的学习过程中,对整体编码有点新鲜(通过正确的学习来学习?)
尝试执行信使功能,以便我们的聊天机器人在发送模板之前获得少量“写入”气泡x个时间。 = sender_action_typing_on
。
我已经尝试过睡眠,等待,等待等等,但代码似乎没有被执行,但模板仍然显示在我选择的时间之后。
json在Facebook的文档中也是正确的,如果它单独执行,它会在超时之前运行20 sek。
代码:
if ( $response == "")
{
$jsonData = '{"recipient":{"id":"' . $sender . '"},"message":{"text":"' . $message_to_reply.'"}}';
$jsonDataEncoded = $jsonData;
}
else
if ( $response == "123456")
{
$sender_action_typing_on = '{
"recipient":{
"id":"<PSID>"
},
"sender_action":"Typing_on"
}';
$sender_action_typing_on = str_replace("<PSID>", $sender, $sender_action_typing_on);
$jsonDataEncoded = $sender_action_typing_on;
$velkommenTemplateJSON = str_replace("<PSID>", $sender, $velkommenTemplateJSON);
$jsonDataEncoded = $velkommenTemplateJSON;
}
答案 0 :(得分:0)
我现在已经解决了这个问题,对于很多人来说这可能是非常自我解释的,但对于寻找答案的“迷失的灵魂”,你可以看到我在这里解决问题的方式:
首先我创建了一个新功能:
function sendToMessenger($access_token, $sender, $sender_actiontemplateJSON)
{
$content = str_replace("<PSID>", $sender, $sender_actiontemplateJSON);
$opts = array(
'http'=>array(
'method'=>"POST",
'header' => "Content-Type: application/json",
'content' => $content
)
);
$context = stream_context_create($opts);
$url = 'https://graph.facebook.com/v2.6/me/messages?access_token=' . $access_token;
// Open the file using the HTTP headers set above
$file = file_get_contents($url, false, $context);
return $file;
然后我重新安排了我发送模板的方式,因为模板是在我的代码的末尾发送的“Sender_action”将永远被覆盖,现在使用“SendToMessenger”功能,它立即被发送。
else
if ( $response == "123456")
{
sendToMessenger($access_token, $sender, $sender_actiontemplateJSON);
sleep(1);
sendToMessenger($access_token, $sender, $velkommenTemplateJSON);
}
现在它就像一个魅力!