2016-08-18 1 views
0

Попытка send messages to slack каналов с установленным на них incoming webhooks. Attachments необходимо отправить вместе с сообщением, а переменные PHP содержат эти URL-адреса. Similary, я хочу отправить ID's, которые снова хранятся в некоторых переменных PHP. Вот мой server side PHP код:PHP отправить слабые сообщения с вложениями и значениями переменных

<?php 

$testplan_name = $_POST[plan]; //test plan name coming from the client 
$url1 = $_POST[run_url]; //run url coming from the client 
$url2 = $_POST[plan_url]; //plan url coming from the client 
$room = "random"; 
$icon_url = ":ghost:"; 
$username = "Test"; 
$attachments = array([ 
      'fallback' => 'Hey! See this message', 
      'pretext' => 'Here is the plan name ${testplan_name}', 
      'color' => '#ff6600', 
      'fields' => array(
       [ 
        'title' => 'Run URL', 
        'value' => 'url1', 
        'short' => true 
       ], 
       [ 
        'title' => 'Build URL', 
        'value' => 'url2', 
        'short' => true 
       ] 
      ) 
     ]); 

$data = "payload=" . json_encode(array(   
     "channel"  => "#{$room}", 
     "icon_emoji" => $icon_url, 
     "username"  => $username, 
     "attachments" => $attachments 

    )); 

$url = "https://hooks.slack.com/services/XXXX/XXX/XXXXXXXXXXXXX"; //got from slack as a webhook URL 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$result = curl_exec($ch); 
echo var_dump($result); 
if($result === false) 
{ 
    echo 'Curl error: ' . curl_error($ch); 
} 

curl_close($ch); 

Если вы видите в переменной attachments выше, есть переменные внутри pretext, которая пытается вывести значение ${testplan_name} объявленного в верхней части. Однако, похоже, что это не работает, и программе не удается отправлять сообщения на слабые каналы. Аналогично, я хочу напечатать значения url1 и url2 в значениях attachments -> fields, как видно выше (способ, которым я пытаюсь распечатать). Программа работает нормально, если я не пытаюсь использовать какие-либо переменные и получать их значения при отправке сообщений. Как распечатать значения этих переменных в сообщениях?

(slack is a messaging platform for teams, if you don't know)

ответ

0

Попробуйте вместо>

$attachments = array([ 
     'fallback' => 'Hey! See this message', 
     'pretext' => 'Here is the plan name '.$testplan_name, 
     'color' => '#ff6600', 
     'fields' => array(
      [ 
       'title' => 'Run URL', 
       'value' => $url1, 
       'short' => true 
      ], 
      [ 
       'title' => 'Build URL', 
       'value' => $url2, 
       'short' => true 
      ] 
     ) 
    ]); 
Смежные вопросы