dongnao2048
2017-05-30 08:37
浏览 87
已采纳

如何正确发送JSON CURL到Slack?

I have a CURL code that I use to integrate with GetResponse and I thought ill go ahead and copy/paste it for slack too. For some reason there are no errors at all yet slack is empty of requests (a POST to this URL with Postman works just fine). What am I missing? I couldn't find a solution the whole night.

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

function slackReporting($data)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://hooks.slack.com/services/XXXX/XXXX/XXXXXX');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_exec($ch);
}

$slackReporting_data = array(
    'text' => "`New Lead` `+34 today`.",
    'username' => "Leads",
    'mrkdwn' => true
);

$slackReporting_res = json_decode(slackReporting($slackReporting_data));

$slackReporting_error = "";
if(empty($slackReporting_res->error)){
    echo "OK";
} else {
    $slackReporting_error = $slackReporting_res->error->message;
}
echo $slackReporting_error;
?>

I always get an OK.

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douwen1549 2017-05-30 08:44
    已采纳

    Since you din't return anything from function so you are getting nothing inside $slackReporting_res .Do like below:-

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    function slackReporting($data)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://hooks.slack.com/services/XXXX/XXXX/XXXXXX');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
        $content  = curl_exec($ch);
        if(curl_errno($ch)){
           echo 'Request Error:' . curl_error($ch);exit;
        }
        curl_close($ch);
        return $content;
    }
    $slackReporting_data = array(
        'text' => "`New Lead` `+34 today`.",
        'username' => "Leads",
        'mrkdwn' => true
    );
    $slackReporting_res = json_decode(slackReporting($slackReporting_data));
    
    var_dump ($slackReporting_res); //check output and work accordingly
    ?>
    

    And now Op's got error and solved through this link(mentioned by OP in comment):-

    PHP - SSL certificate error: unable to get local issuer certificate

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题