我想知道是否有任何方法可以激活所有意图的webhook(而不是一个一个地激活它)。谢谢!
答案 0 :(得分:2)
目前尚无此类功能,但是我遇到了类似的问题,这就是我解决的方法:
usersays
结尾的文件"webhookUsed": false,
更改为"webhookUsed": true,
Restore from zip
选项上载替换现有意图的zip文件 更新1:
下面是代码:
import zipfile
import json
import os
import glob
cwd = os.getcwd()
zip_ref = zipfile.ZipFile(cwd + '/filename.zip', 'r')
zip_ref.extractall('zipped')
zip_ref.close()
cwd = cwd + '/zipped/intents'
files = glob.glob(cwd + "/*.json")
for file in files:
print(file)
if "usersay" not in file:
json_data= json.loads(open(file).read())
json_data['webhookUsed'] = True
with open(file, 'w') as outfile:
json.dump(json_data, outfile)
将从dialogflow获得的zip文件放置在与放置上述代码并运行python程序相同的目录中。
运行此代码后,导航到名为zipped
的目录并压缩文件的所有内容,然后执行步骤4。
更新2:
更新了代码,使其与多种语言Dialogflow代理兼容。
希望有帮助。
答案 1 :(得分:1)
除了一个接一个地激活它,或者下载zip文件,然后在JSON中按音调设置一个,然后上传结果-否。
答案 2 :(得分:0)
@ sid8491非常感谢,这对我有用!
我必须进行一些更改才能正常运行。您的回答非常有帮助。这是我的最终脚本:
import zipfile
import json
import os
import glob
cwd = os.getcwd()
zip_ref = zipfile.ZipFile(cwd + '/Bill.zip', 'r')
zip_ref.extractall('zipped')
zip_ref.close()
cwd = cwd + '/zipped/intents'
files = glob.glob(cwd + "/*.json")
for file in files:
print(file)
if "usersay" not in file:
json_data = json.loads(open(file, encoding="utf8").read())
json_data['webhookUsed'] = True
with open(file, 'w') as outfile:
json.dump(json_data, outfile)
else:
print("Usersay file", file)