컴퓨터/Python

flask slack

풍경소리^^ 2022. 4. 8. 15:05

02. Slack 생성

slack.com

다른 워크스페이스 만들기

워크스페이스 생성

flask_slack

 

봇만들기

설정및 관리

앱관리

찾아보기-참고하고

구축-Your apps-FlaskBot

Create an app

From scratch

App Name - FlaskBot

pick a workspace to develop your app in - flask_slack

Create App

 

Incoming Webhooks - 우리 웹사이트에서 슬랙으로 데이터를 보내는 것

Slash Commands

 

03. Incoming Webhook, Slash Command 활성화

Incoming Webhooks

Activate Incoming Webhooks - On

Add New Webhook to Workspace

어디에 게시

#python-flask

git bash 관리자권한으로 실행

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/T@@@@@@@@@@@@@@@@@@

 

FlaskBot

Hello, World!

 

Slash Commands

Create New Command

Command - /flasktodo

Request URL - http://miero.pythonanywhere.com 

 

Document

메인 로그아웃

miero.pythonanywhere.com

Descrption - TODO 앱

Usage Hint - [create|list]

Save

 

04. Slack을 위한 프로젝트 설정

python>flask>flaskslack>

python -m venv ./venv

 

ctrl + shift + p

python select interpreter

가상환경 cmd

 

터미널+

cmd

pip list

pip install flask

B:\python\flask\project\venv\Scripts\python.exe -m pip install --upgrade pip

 

app.py--------------------

from flask import Flask
app =  Flask(__name__)
app.register_blueprint(api_v1, url_prefix='/api/v1')
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000, debug=True)

====================

api_v1>__init__.py--------------------

from flask import Blueprint
api = Blueprint('api', __name__)
from . import todo

====================

api_v1>todo.py--------------------

from flask import jsonify
from flask import request
@api.route('/todos', methods=['GET','POST'])
def todos():
    if request.method == 'POST':
        pass
    elif request.method == 'GET':
        pass
    data = request.get_json()
    return jsonify(data)

====================

pip install flask requests

 

api_v1>todo.py--------------------

from flask import jsonify
from flask import request
import requests
@api.route('/todos', methods=['GET','POST'])
def todos():
    if request.method == 'POST':
        pass
    elif request.method == 'GET':
        pass
    data = request.get_json()
    return jsonify(data)
@api.route('/test', methods=['POST'])
def test():
    data = request.get_json()
    return jsonify(data)

====================

slack api

Slash Commands

Name - /flasktodo

Description - TODO 앱

연필

 

빠져나오기

Features

Incoming Webhooks

Webhook URL

https://hooks.slack.com/services/T@@@@@@@@@@@@@@@@@@@@@@

 

api_v1>todo.py--------------------

from flask import jsonify
from flask import request
import requests
@api.route('/todos', methods=['GET','POST'])
def todos():
    if request.method == 'POST':
        res = requests.post('https://hooks.slack.com/services/T@@@@@@@@@@@@@@@@@@@@@@
', json={
            'text': 'Hello World'
        }, headers={ 'Content-Type': 'application/json'})
    elif request.method == 'GET':
        pass
    data = request.get_json()
    return jsonify(data)
@api.route('/test', methods=['POST'])
def test():
    res = request.form['text']
    print(res)
    return jsonify(res)

====================

 

app.py--------------------

from flask import Flask
from api_v1 import api as api_v1
app =  Flask(__name__)
app.register_blueprint(api_v1, url_prefix='/api/v1')
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000, debug=True)

====================

 

api_v1>todo.py--------------------

from flask import jsonify
from flask import request
from flask import Blueprint
import requests
from . import api
@api.route('/todos', methods=['GET','POST'])
def todos():
    if request.method == 'POST':
        res = requests.post('https://hooks.slack.com/services/T@@@@@@@@@@@@', json={
            'text': 'Hello World'
        }, headers={ 'Content-Type': 'application/json'})
    elif request.method == 'GET':
        pass
    data = request.get_json()
    return jsonify(data)
@api.route('/test', methods=['POST'])
def test():
    res = request.form['text']
    print(res)
    return jsonify(res)

====================

터미널+

git bash

curl -XPOST http://127.0.0.1:5000/api/v1/todos

 

설정

Ctrl + ,

pylint

python>linting:Pylint Enabled

 

05. GCP 배포 준비하기

https://console.cloud.google.com/

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

Compute Engine

프로젝트 이름 - flask-i1683u

활성화 - 무료 $300

인스턴스 만들기

리전 - 서울

머신유형 - e2-micro

부팅디스크

운영체제 - CentOS7

방화벽

HTTP 트래픽 허용

HTTPS 트래픽 허용 

만들기

외부 IP 나타나면

SSH

검색 centos7 ius-release.rpm

yum install -y https://centos7.iuscommunity.org/ius-release.rpm 카피

안되네

'컴퓨터 > Python' 카테고리의 다른 글

python win32com excel 단축키 실행  (0) 2022.04.16
jupyterlab 설치 에러  (0) 2022.04.15
flask_fastcampus2  (0) 2022.04.01
flask git  (0) 2022.03.23
python ticket.interpark  (0) 2022.02.18