2016-01-31 2 views
0

Мой вопрос связан с командами Slash's Slash.Ответ командной строки не выполняется правильно.

Я пытаюсь вернуть ответ обратно на вызывающий канал.

например, я integerated команду тест как

/test hello 

и я хочу ответ, как:

Hello 
Wold 

, но я в настоящее время получаю как (в моем слабину канале):

{"text":"hello\nworld"} 

Это мой код PHP:

$payload = '{"text":"hello\nworld"}'; 
echo $payload; 

Примечание Я не хочу просто повторить, как это:

echo "hello\nworld"; 

Заранее спасибо :)

Может быть полезным в предоставлении ответа: -

Пример неправильного ответа фактического :

enter image description here

натяжной слеш команды API URL: https://api.slack.com/slash-commands

+0

Итак, если ваша полезная нагрузка - это json, и вы получаете в своем слабом канале тот же самый json, который вы напечатали, тогда, может быть, вам просто нужно повторить то, что вы хотите показать на своем канале? Я имею в виду, никто не получает особого вкуса. –

+0

Да, но это возможно, но на самом деле мне нужно печатать другие вещи, которые также разрешают api, но я не могу напечатать те, которые похожи на значок emoji с текстом, тогда он будет показывать только текст emoji, но на самом деле не показывает эмози. –

+1

вам нужно изменить строку: $ payload = '{"text": "hello \ nworld"}'; to be: $ payload = 'payload = {"text": "hello \ nworld"}'; – yorammi

ответ

0

Если вы внимательно прочитать документы (которые вы связаны), вы бы заметили, что он говорит:

ПРИМЕЧАНИЕ: Если вы отвечаете с JSON вместо обычного текста, заголовок типа содержимого ответа должен соответствовать расположению вашего контента, application/json.

Похоже, вы просто выводите JSON без отправки правильного заголовка Content-Type, поэтому Slack считает, что это простой текст и отображает ваш JSON как обычный текст.

Кроме того, рассмотрите возможность использования json_encode вместо ручной записи JSON.