我正在构建一个slackbot,并试图从slack接收短信。这是我的python代码
import os
from flask import Flask, request, Response
from slackclient import SlackClient
from twilio import twiml
from twilio.rest import TwilioRestClient
SLACK_WEBHOOK_SECRET = os.environ.get('SLACK_WEBHOOK_SECRET', None)
WILIO_NUMBER = os.environ.get('TWILIO_NUMBER', None)
USER_NUMBER = os.environ.get('USER_NUMBER', None)
app = Flask(__name__)
slack_client = SlackClient(os.environ.get('SLACK_TOKEN', None))
twilio_client = TwilioRestClient()
@app.route('/twilio', methods=['POST'])
def twilio_post():
response = twiml.Response()
if request.form['From'] == USER_NUMBER:
message = request.form['Body']
slack_client.api_call("chat.postMessage", channel="#general",
text=message, username='twiliobot',
icon_emoji=':robot_face:')
return Response(response.toxml(), mimetype="text/xml"), 200
@app.route('/slack', methods=['POST'])
def slack_post():
if request.form['token'] == SLACK_WEBHOOK_SECRET:
channel = request.form['channel_name']
username = request.form['user_name']
text = request.form['text']
response_message = username " in " channel " says: " text
twilio_client.messages.create(to=USER_NUMBER, from_=TWILIO_NUMBER,
body=response_message)
return Response(), 200
@app.route('/', methods=['GET'])
def test():
return Response('It works!')
if __name__ == '__main__':
app.run(debug=True)
当我尝试使用" python twiliobot.py"运行此代码时,因为它是应用程序的名称,它会返回此错误:
文件" twiliobot.py",第33行response_message = username" in" 频道"说:"文本
答案 0 :(得分:3)
这里有问题
response_message = username " in " channel " says: " text
我假设您正在尝试连接文字。使用+
运算符
response_message = username + " in " + channel + " says: " + text
或join
response_message = ' '.join([username, "in", channel, "says:",text]
或format
response_message = '{} in {} says: {}'.format(username, channel, text)