使用“Incoming Webhooks”无法将JSON发布到Slack

时间:2016-05-01 11:39:48

标签: json post slack

我试图使用“Incoming Webhooks”从外部服务向Slack发送消息,但它不起作用。

现在, 我从Chrome的开发者控制台收到错误,这是500错误。 *此编码的目的是使用松弛的聊天应用程序。

有谁知道如何将消息发布到Slack?

        var module = angular.module('myapp',[]);
        module.controller("main", function($scope,$http){
        $scope.users = [{"text":"message"},];
        $scope.addUser = function(){
        //push data into list "$scope.users" for debug
        $scope.users.push({"text":$scope.txt});
        $scope.text = "";
        var successCallback = function(respose){
            $scope.result = response.data;
            $log.info(response);
        };

        var errorCallback = function(respose){
            $scope.error = 'error';
        };



        var message = {
                "text": $scope.txt,
                "username":"",
                "icon_url":"",
                "icon_emoji":"",
                "channel":"#XXX",

            };

        var configs = {
                headers : {
                    'Content-Type': 'application/json'
                }
            };

            $http({
                        method : "POST",
                        url : "https://hooks.slack.com/services/XXX/XXX/XXX",
                        payload : message,
                        config : configs
            }).then(successCallback,errorCallback);
    };
});

1 个答案:

答案 0 :(得分:0)

我对Angular不熟悉,但从文档中可以看出,您对$http的调用是错误的?当我认为您的意思是payload时,您是否通过了data字段?

我也不确定需要Content-Type标头...我相信JSON是默认设置。所以我试试吧:

$http({ method: 'POST', url: '...', data: message }).then(...);

但您应该能够在Chrome的开发者工具中看到请求和响应,并希望能够清楚地表明您是否正在向服务器发送您期望的内容。