【问题标题】:Kik bot using cURL and php - no response使用 cURL 和 php 的 Kik bot - 无响应
【发布时间】: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


    【解决方案1】:

    抱歉回复晚了,我使用相同的代码,我的问题是 ssl 证书。添加了以下内容:curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);,它很有魅力!

    //编辑

    哦,我忘记了,虽然我不推荐它发送这个:

    $user_data = '{
            "messages" : [
                {
                    "body" : "hey!",
                    "to" : "' . $to . '",
                    "type" : "text",
                    "chatId" : "' . $chatId . '"
                }
            ]
        }';
    

    而不是JSON_encode()的结果

    【讨论】:

      【解决方案2】:

      虽然 Kik 没有 PHP 示例 - JSON 示例应该可以帮助您让您的机器人说话。 https://dev.kik.com/#/docs/messaging

      发送消息的 curl(命令行)版本如下所示:

      curl \
          -u "<username>:<api_key>" \
          -H "Content-Type: application/json" \
          -X "POST" \
          -d '{"messages": [{"body": "bar", "to": "laura", "type": "text", "chatId": "b3be3bc15dbe59931666c06290abd944aaa769bb2ecaaf859bfb65678880afab"}]}'\
       https://api.kik.com/v1/message
      

      【讨论】:

        猜你喜欢
        • 2016-10-27
        • 2016-09-16
        • 2010-10-21
        • 2016-08-03
        • 2018-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多