【发布时间】:2020-09-04 11:37:16
【问题描述】:
我想使用我使用 Dialogflow 创建的聊天机器人作为我网站的主页。然而它告诉我google.api_core.exceptions.PermissionDenied: 403 IAM permission 'dialogflow.sessions.detectIntent' on 'projects/pollingagent-jnscpa/agent' denied.
尝试与他交谈时。
我关注了this tutorial,它告诉了如何使用 Flask 进行操作,但我已准备好转向最简单的解决方案。 我从a similar question的答案中尝试了以下内容:
- 在 Dialogflow 的控制台中,转到设置 ⚙ > 在常规选项卡下,有项目 ID 部分,其中包含用于打开 Google Cloud 控制台 > 打开 Google Cloud 的 Google Cloud 链接。
- 在谷歌云中,转到 IAM 管理员 > IAM 选项卡下的成员。找到我的代理人的姓名,然后点击编辑。
- 向代理授予管理员权限以授予列出意图的权限。
所以我不知道,也许问题出在我的 index.py 上?
from flask import Flask, request, jsonify, render_template
import os
import dialogflow
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
def detect_intent_texts(project_id, session_id, text, language_code):
session_client = dialogflow.SessionsClient()
session = session_client.session_path(project_id, session_id)
if text:
text_input = dialogflow.types.TextInput(
text=text, language_code=language_code)
query_input = dialogflow.types.QueryInput(text=text_input)
response = session_client.detect_intent(
session=session, query_input=query_input)
return response.query_result.fulfillment_text
@app.route('/send_message', methods=['POST'])
def send_message():
message = request.form['message']
project_id = os.getenv('DIALOGFLOW_PROJECT_ID')
fulfillment_text = detect_intent_texts(project_id, "unique", message, 'en')
response_text = { "message": fulfillment_text }
return jsonify(response_text)
# run Flask app
if __name__ == "__main__":
app.run()
【问题讨论】:
标签: javascript python-3.x permissions dialogflow-es