dongnao2048 2017-05-30 00:37
浏览 88
已采纳

如何正确发送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 00: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条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部