首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Chatfuel连接Django Dashboard

使用Chatfuel连接Django Dashboard
EN

Stack Overflow用户
提问于 2018-01-15 06:25:51
回答 2查看 242关注 0票数 1

我有一个项目,我必须将我的Django应用程序与Chatfuel机器人连接起来。

我有我的管理面板,所以每当我更新一个字段,如完成某个任务,我必须通过聊天机器人通知我的客户这个字段的变化。我阅读了JSON API文档,我注意到它们有一个特定的“模板”来从后端获取数据。

我所做的是通过Django Rest Framework从模型中提取所有数据,并将其转换为JSON。问题是,我不知道如何在Chatfuel中使用此信息,因为我的JSON没有Chatfuel所需的模板。

这是我从模型中提取的信息。

这就是Chatfuel所需要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-16 01:36:51

如果有人正在寻找这个答案,我会用一个序列化程序来解决:

代码语言:javascript
复制
class UserAPI(APIView):
serializer = UserSerializer


def get(self, request, format=None):
    list = Caseworker.objects.all()
    response = self.serializer(list, many=True)

    return HttpResponse(json.dumps({'messages': {'text': 
    response.data}}), content_type='application/json')
票数 0
EN

Stack Overflow用户

发布于 2018-02-02 18:40:54

您可以通过使用express (node)的Runkit来实现这一点。

1)转到https://runkit.com,使用以下代码创建一个notebook,并将: ThisIsYourJsonCall替换为您的调用:

代码语言:javascript
复制
var express = require('express');
var app = express();
var getJSON = require("async-get-json");

app.listen(80, function() {
    console.log('Chatfuel Bot-Server listening on port 80...');
});

app.get('/*', function(req, res) {
  module.exports.endpoint = async function (request, response)
    {
    var stringResponse = JSON.stringify(await getJSON('ThisIsYourJsonCall'));
    response.end(stringResponse); 
    }
});

2)发布代码片段并单击端点链接,您可以在该链接中看到响应。获取以'.sh‘结尾的url,并将其放入chatfuel的Json插件中。

3)现在需要做的是在将stringResponse变量传递给response.end()函数之前,使用javascript和node将其更改为您和Facebook需要的格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48254782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档