【发布时间】:2017-12-12 09:44:08
【问题描述】:
我无法从我的 Kik 机器人获得回复。网络钩子配置 似乎是正确的,因为我可以成功地 HTTP “获取” webhook 并接收消息(当我在 Kik 中向机器人发送消息时,我收到“S”、“D”、“R”、发送、传递、接收,更新)。但是,我从来没有收到回信。我正在使用 php 和 cURL 和 webhook 没有在本地运行。
我在网上找到了一些 cURL 和 php sn-ps,但没有表明是否需要任何特殊标头以及确切需要如何发送 Kik Auth 凭据。我尝试了几种方法,包括官方 Kik 文档中的建议,但没有成功。
下面的代码替换了 bot 和 API id。感谢任何帮助。
<?php
// ID and token
$botID = 'mybot';
$authToken = 'longAPIvaluefromKik';
$newToken=$botID.':'.$authToken;
$update = file_get_contents("php://input");
$data = json_decode($update, true);
foreach ($data['messages'] as $message) {
$chatId = $message['chatId'];
$to = $message['from'];
// The data to send to the API
$postData = array(
'messages' => array('body' => 'Hello', 'to' => $to, 'type' => 'text', 'chatId' => $chatId )
);
$headers = array(
'Content-Type:application/json'
);
$user_data = json_encode($postData);
$request_url = 'https://api.kik.com/v1/message';
// cURL
$curlD = curl_init();
curl_setopt($curlD, CURLOPT_URL, $request_url);
curl_setopt($curlD, CURLOPT_POST, 1); // Do a regular HTTP POST
curl_setopt($curlD, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlD, CURLOPT_USERPWD, $newToken);
curl_setopt($curlD, CURLOPT_POSTFIELDS, $user_data); // Set POST data
curl_setopt($curlD, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($curlD);
curl_close($curlD);
}
?>
【问题讨论】:
标签: php curl http-headers bots kik