swift - DialoguFlow 网络请求在 Swift 中不起作用
问题描述
我在我的代码中发现了一些奇怪的问题。你们能帮帮我吗。我按照相同的模式遵循教程,我无法弄清楚。
这是我的代码。
let request : AITextRequest = ApiAI.shared().textRequest()
if let text = message?.text, text != "" {
request.query = text
print("Hey : \(text)")
} else {
print("return")
return
}
request.setMappedCompletionBlockSuccess({ (request, response) in
let response = response as! AIResponse
if let textResponse = response.result.fulfillment.messages {
print("\(textResponse)")
}
}, failure: { (request, error) in
print(error!)
})
它没有进入完成块。它也没有显示失败中的错误。
解决方案
我想出了解决方案。我知道这很奇怪。
我已经在 Appdelegate 中初始化了 CLIENT_TOKEN。它在我的课堂上不起作用。因此,我已在使用此方法的同一类中对其进行了初始化。它开始触发 API。
//ViewDidLoad
let configuration = AIDefaultConfiguration()
configuration.clientAccessToken = "*********************" //Hidden
let apiai = ApiAI.shared()
apiai?.configuration = configuration
推荐阅读
- caching - CakePHP 3.6 缓存文件引擎的默认目录权限
- android - React Native:通知文本未显示在android中
- ruby-on-rails - 从延迟加载的模型中获取 activerecord 关系
- odoo - odoo 社区是否包含免费的条码扫描器?odo支付的必要功能是什么
- sql-server - 如果与输入数据匹配,则获取所有行,该数据在单个列中存在逗号分隔值
- wordpress - 部落事件和 Avada Wordpress 主题仅显示类别名称 -tribe_get_event_categories()
- python - 从 Python 追加到 Access 的 SQL 查询
- android - 读取android库中的属性文件
- apache-nifi - 使用特殊字符更新
- sql-server - 在 SSRS 2008 中,如何将参数传递给 DatSet 查询......或者它们可以吗?