2016-01-12 3 views
0

Я пытаюсь изучить некоторые базовые вещи Slack API и начинаю с создания webhook для приложения, которое я создаю.

У меня есть следующий код:

$scope.postToSlack = function(){ 
    $http({ 
     url: 'https://hooks.slack.com/services/xxx/xxxx/xxxxx', 
     method: "POST", 
     payload:{"text": "This is a line of text in a channel.\nAnd this is another line of text."} 
    }) 
    .then(function(response) { 
     console.log(response) 
    }, 
    function(response) { 
     console.log(response) 
    }); 
} 

Но продолжаю получать ошибку 500 ничего не говоря Payload Received.

Любые идеи о том, почему это не сработает?

ответ

1

Попробуйте данные вместо полезной нагрузки (при условии, что у вас есть все настройки Access-Control-Allow-Origin на сервере).

$scope.postToSlack = function(){ 
    $http({ 
     url: 'https://hooks.slack.com/services/xxx/xxxx/xxxxx', 
     method: "POST", 
     data: 'payload=' + JSON.stringify({"text": "blah"}) 
    }) 
    .then(function(response) { 
     console.log(response) 
    }, 
    function(response) { 
     console.log(response) 
    }); 
} 

FYI - вы, вероятно, захотите сделать это на серверной стороне. Только предложение:

  1. Вам не придется беспокоиться о всей междоменном оприходования сумасшествия

  2. Вы не будете использовать URL-адрес для вашего провисание webhook с миром.

Возможно, это не открытое или вы просто играете, но просто подумал, что я упоминал об этом рано.

+1

Добавить 'заголовки: { 'Content-Type':«применение/х-WWW-форме-urlencoded; charset = UTF-8 ' } ', чтобы он работал на стороне клиента – neric

0

Вслед работал для меня -

$http({ 
    url: slackWebHookUrl, 
    method: "POST", 
    data: 'payload=' + JSON.stringify({"text": message,"channel" : slackChannelname, "username" : slackUsername}), 
    headers: {"Content-type": "application/x-www-form-urlencoded; charset=UTF-8"} 
}) 
.then(function(response) { 
    console.log("Slack response :" + JSON.stringify(response)); 
}, 
function(error) { 
    console.log("Slack error :" + JSON.stringify(error)); 
}); 
Смежные вопросы