2017-05-30 75 views
1

我有一个CURL代码,我用它来与GetResponse集成,我认为不好,继续复制/粘贴它。出于某种原因,根本没有任何错误,但松散的请求是空的(Postman使用Postman工作就可以了)。我错过了什么?我整晚都找不到解决方案。如何正确发送JSON CURL到Slack?

<?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; 
?> 

我总是得到一个确定。

回答

1

既然你din't,这样你就得到什么,从函数返回任何内部$slackReporting_res。做象下面这样: -

<?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 
?> 

现在运的遇到错误,并通过这个环节来解决(在评论中提到OP) : -

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

+0

的代码示例我的例子是'NULL'。 – Ricardo

+0

'警告:curl_errno():2不是在线16上的有效cURL句柄资源现在我很困惑。 – Ricardo

+0

太棒了!这是SSL错误'请求错误:SSL证书问题:无法获得本地颁发者证书',我已经解决了这个帖子的帮助:https://stackoverflow.com/questions/28858351/php-ssl -certificate-error-unable-to-get-local-issuer-certificate – Ricardo

0

下面是如何使用疏松与curl

一个简单的例子

摘自here