반응형

다운로드 - https://github.com/wonkwangyeon/Add-Windows-Run/releases

 

Releases · wonkwangyeon/Add-Windows-Run

Windows의 실행에서 파일을 실행하고 관리하는 프로그램. Contribute to wonkwangyeon/Add-Windows-Run development by creating an account on GitHub.

github.com

git source - https://github.com/wonkwangyeon/Add-Windows-Run

 

GitHub - wonkwangyeon/Add-Windows-Run: Windows의 실행에서 파일을 실행하고 관리하는 프로그램

Windows의 실행에서 파일을 실행하고 관리하는 프로그램. Contribute to wonkwangyeon/Add-Windows-Run development by creating an account on GitHub.

github.com

 

Winodws 의 실행에서 파일을 실행하기위해 레지스트리를 편집해서 작성해야하지만

해당 프로그램을 이용하면 레지스트리 편집기를 열지않아도 추가가능하며,

어느것을 추가했는지 관리가능하며, 삭제까지 가능한 프로그램.

 

1. 소개

Windows의 실행에서 파일을 실행할 수 있도록 등록 및 관리하는 프로그램

사용언어 - Python

사용 DB - SqlLite

2. 기능

  • 실행할 파일 레지스트리에 추가
  • 추가한 파일 삭제

3. 사용방법

  1. 추가

  • Run Name :
    • 실행에서 파일을 실행할 명령어 등록 ex) vscode.exe
  • Run File Path :
    • 실행 파일이 위치한 폴더 경로 ex) C:\Users\VSCode
  • Run File.exe :
    • 실제 exe 파일 ex) Code.exe
  1. 삭제
  • 삭제할 항목 클릭 후 Delete 버튼 클릭
  1. 확인

  • 실행창에서 등록한 명령어를 통해 실행확인

  • 레지스트리편집기에서 추가 및 삭제 확인
  1. 실행 및 실패 로그는 4번의 DB 및 Log경로에서 확인가능

4. DB 및 Log 경로

C:\addWindowsRun

  • DB.log
    • DB 실행 로그
  • AddWindowsRun.log
    • 프로그램 시작 로그
  • Run.log
    • 실행 로그
  • addWindowsRun.db
    • 추가한 파일 및 경로를 저장하는 DB
반응형
반응형

 

Maven, Npm - 2020.12.05 - [Develop/기타 작업] - Nexus bulk upload (Nexus 대량 업로드)

 

whl확장자로 되어있는 Python Package Upload 를 위해서는 Python Package 중 twine 이라는 Package를 이용한다.

 

1. 인터넷이 되는 환경에서는 아래 명령어로 설치하면된다.

pip install twine

 

2. 인터넷이 되지 않는 Offline 환경에서는 먼저 인터넷이 되는 환경에서 whl파일을 내려받아야한다.

아래명령어를 통해 twine 설치에 필요한 패키지들을 전부 받는다. 

pip download -d . twine

받고난 뒤 설치하면 패키지가 3개정도 없다고 나오는데 (twine 4.0.3버전 기준) 

해당 패키지 3개 또한 https://pypi.org/project/ 에서 whl 파일을 미리 받아서 Offline 환경으로 반입한다.

없는 패키지 목록은 아래와 같다

pypiwin32-223-py3-none-any.whl
pywin32_ctypes-0.2.0-py2.py3-none-any.whl
charset_normalizer-3.1.0-py3-none-any.whl

 

3. Offline 환경에서 아래 명령어를 입력한다.

pip install --no-index -f . twine

 

만약 설치 후 없는 파일이 존재하면 마찬가지로 반입하여 설치하면된다.

 

4. 설치 후에 .pypi 파일을 작성한다

'C:\Users\window계정' 해당 경로에 .pypi를 작성한다.

[distutils]
index-servers =
    nexuslabel


[nexuslabel]
repository : http://nexus.url
username : id
password : pw

 

5. 업로드할 whl 폴더에 터미널을 열어 아래의 명령어를 실행한다.

만약 whl 파일들이 폴더안에 아무런 폴더구조를 가지지 않으면 ./* 로 실행하고

폴더 구조를 2단계로 가지고 있으면 ./*/* (e.g. test/test.whl)

폴더 구조를 3단계로 가지고 있으면 ./*/*/* (e.g. test/2.0/test.whl)

로 실행한다

twine upload --repository nexuslabel ./*

 

 

 

반응형
반응형

다운로드 - https://github.com/wonkwangyeon/Run-Multiple-Program/releases

git source - https://github.com/wonkwangyeon/Run-Multiple-Program

 

처음 회사에서 PC가 처음켜지면 여러 파일을 실행해야해서 일일이 파일 위치 찾아가면서 더블클릭 해가면서 실행하기 불편해서 만든 프로그램.

경로만 입력하고 RUN하면 파일 및 폴더 전부 실행

1. 소개

Windows 전용 파일 및 폴더를 한번에 실행시켜주는 프로그램.

사용언어 - Python

사용 DB - SqlLite

2. 기능

  • 파일 및 폴더 추가 후 프로그램 한번에 실행
  • 추가한 파일 및 폴더 삭제

3. 사용방법

  1. 추가
  • 일반 파일 및 프로그램
    • Select Box에서 File 선택하고 해당 파일 위치와 확장자 입력 후 ADD 버튼클릭
  • 폴더
    • Select Box에서 Folder 선택하고 해당 폴더 위치 입력 후 ADD 버튼클릭
  1. 삭제
  • 삭제할 항목 클릭 후 Delete 버튼 클릭
  1. 실행
  • RUN 버튼으로 실행
  1. 실행 및 실패 로그는 4번의 DB 및 Log경로에서 확인가능

4. DB 및 Log 경로

C:\runMultipleProgram

  • DB.log
    • DB 실행 로그
  • RunMultipleProgram.log
    • 프로그램 시작 로그
  • RunProgramService.log
    • 실행 로그
  • runMultipleProgram.db
    • 추가한 파일 및 폴더를 저장하는 DB

 

다운로드 - https://github.com/wonkwangyeon/Run-Multiple-Program/releases

git source - https://github.com/wonkwangyeon/Run-Multiple-Program

반응형
반응형

1. Keyboard package

1.1 사용한 패키지

Windows Keyboard를 제어할 목적으로 Python의 Keyboard 패키지를 사용하였다.

https://github.com/boppreh/keyboard

 

boppreh/keyboard

Hook and simulate global keyboard events on Windows and Linux. - boppreh/keyboard

github.com

 

1.2 사용목적

한 손으로 사용하기 힘든 단축키를 한손으로만 사용하기 위해 Keyboard Pacakge에서의 Hotkey를 사용하였다.

예를 들어, 윈도우 데스크톱 이동 명령어인 ctrl+window key+left or right 는 한손으로는 무리가 가기 때문에 이를 위해 아래와 같이 작성하여, 한손으로 사용하고자 하였다.

import keyboard

def main():
    
    keyboard.add_hotkey('cmd+z', lambda: keyboard.press_and_release('ctrl+cmd+left'))

    keyboard.add_hotkey('cmd+c', lambda: keyboard.press_and_release('ctrl+cmd+right'))
 
    keyboard.wait()  

if __name__== '__main__':
    main()

 

2. 문제

2.1 Keyboard Package 한/영키 문제

사용 중에 가끔 먹통이 되는 이유가 있었는 데, 원인을 파악해 보니 한/영키 문제 였다.

 

2.2 해결

한/영키를 누를 경우 Keyboard에 hangeul 이라는 것이 늘 따라 붙게 된다. 따라서 앞에 hangeul이라는 것을 붙이면 해결된다. 아래는 해결한 코드이다.

import keyboard

def main():
    
    keyboard.add_hotkey('cmd+z', lambda: keyboard.press_and_release('ctrl+cmd+left'))
    keyboard.add_hotkey('hangeul+cmd+z', lambda: keyboard.press_and_release('ctrl+cmd+left')) # hangeul 붙임

    keyboard.add_hotkey('cmd+c', lambda: keyboard.press_and_release('ctrl+cmd+right'))
    keyboard.add_hotkey('hangeul+cmd+c', lambda: keyboard.press_and_release('ctrl+cmd+right')) # hangeul 붙임

    keyboard.wait()  

if __name__== '__main__':
    main()

 

이렇게 한/영키를 통해 먹통이 되는 Keyboad Pacakge를 앞에 hangeul 이라는 단어를 붙여 해결 할 수 있다.

반응형
반응형


 

AWS의 Lambda 서비스와 Cloudwatch 이용하면 Batch job 역할을 할 수 있다.

덧 붙여 Python Lambda Python Package 배포 하는 방법을 해보자.



AWS ElasticBeanStalk을 이용한 배포(Spring boot) 바로가기

1. 2018/10/26 - [Develop/Spring Boot] - Spring Boot AWS Elastic BeanStalk을 이용한 배포




1. 먼저 AWS Lambda서비스를 생성합니다.






2. 그리고 AWS CloudWatch 서비스의 규칙에서 규칙생성을 합니다.




3. 이벤트 소스의 일정에 들어가 고정비율 또는 Cron식을 이용하여 시간을 선택합니다.

그리고 대상에서 아까 만든 Lambda 함수를 선택하고 생성을 합니다.


(저의 크론식은 Batchjob을 위해 매일 하루 자정마다 실행을 하는 것입니다.)

Cron식은 아래 링크의 AWS CloudWatch 레퍼런스에서 확인 할 수 있습니다. 

https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html



 


4. 다시 Lambda로 들어와  아까만든 것의 편집합니다.

왼쪽 Designer 창에서 CloudWatch Events를 클릭하고

트리거 구성에 방금 만든 CloudWatch 규칙을 입력하고 추가합니다.




5. 규칙을 추가하였다면 생성한 함수의 이름을 클릭하여 함수코드 적는 란으로 돌아옵니다.




6. 직접 코드를 입력할 수도 있고, zip파일로 추가와 s3에 있는 것을 사용할 수 있습니다. 저는 .zip파일을 추가해보겠습니다.


.zip 파일을 업로드하고 저장을 하면




아래와 같이 Find not found 경고와 코드편집기가 나옵니다. 이 경고 메세지는 실행할 수 있는 핸들러(파이썬 메소드) 이름을 못찾아서 입니다. 이제 곧 수정할 예정입니다.


7. 저의 프로젝트 같은 경우는 app.py에서 실행하므로 app.py에 클릭합니다.

또한 저는 def main 메소드에서 프로그램이 실행됩니다.


이제 핸들러 정보에서 핸들러(파이썬 메소드)를 입력합니다. 

먼저 실행할 메인 파이썬파일의 이름을 적고 뒤엔 실행할 메소드 이름을 적습니다

(ex app.py 의 main() 메소드를 실행한다면 app.main 이라고 적음)

그리고 가장 중요한 실행하는 메인 메소드의 인자에 (event, context)라고 적어주어야 합니다. 

Lambda 레퍼런스에 따르면  아래와 같습니다.

  • event - AWS Lambda는 이 파라미터를 사용하여 이벤트 데이터를 핸들러에 전달합니다. 이 파라미터는 일반적인 Python dict 유형입니다. 또한 liststrintfloat 또는 NoneType 유형이 될 수 있습니다.

  • context - AWS Lambda는 이 파라미터를 사용하여 실행 시간 정보를 핸들러에 제공합니다. 이 파라미터는 LambdaContext 유형입니다.




8. 그리고 가장중요한 Python Package 추가하는 방법입니다. 

저는 사진에 이미 위 사진들에 추가가 되어있습니다.(pymysql)


저는 venv를 사용하기 때문에.

윈도우 기준

 %VIRTUAL_ENV%\Lib\site-packages


리눅스/mac 기준

$VIRTUAL_ENV/lib/python3.6/site-packages


site-packages 안에 있는 패키지 폴더들을 전부 복사하여 최상위 폴더에 붙여넣습니다. 그리고 배포할땐 압축파일에 venv파일을 제외하면 됩니다.

저 같은 경우는 mysql패키지만 사용하므로 site-packages안에 있는 mysql패키지(pymysql, PyMySQL-0.8.0.dist-info, pip-10.0.1-py3.7.egg)를 아래와 같이 최상위 폴더에 붙여놓고 venv폴더를 제외하고 .zip파일로 압축을 하였습니다.



9. 환경 변수 설정. (필요하신 분들만 사용안하시는 분들은 그냥 저장하셔도 무관함.)

저의 config.py 파이썬 파일입니다.



아래와 추가하시면 됩니다.



10. 위의 설정을 다 하셨으면 저장하시면 끝이납니다.

그리고 CloudWatch의 로그에서 필터에 아래와 같이 검색하시면 로그가 나옵니다. 그 로그를 보고 지정한 시각에 실행이 정상적으로 되었는지 확인하시면됩니다.




마지막으로. 파이썬파일에 외부 파일을 저장하는 소스가 있으면 READ_ONLY에러가 나오면서 되지않습니다. 예를 들어 log를 파일로 남기기 위해 파일 저장하는 소스가 있는데. 이는 Lambda에서 파일 저장을 제공하지 않으므로 에러가 발생합니다. 

사실 Lambda의 /tmp폴더에 경로를 지정하여 저장되게 하면, 저장되나 /tmp폴더를 확인할 수 있는 방법이 없습니다. 물론 S3를 이용하여 확인 할 수 는 있습니다.

그러므로 로그를 많이 확인하셔야 한다면 로그파일이 S3에 저장되게 할 수 있습니다. 물론 여기선 다루지 않습니다.(레퍼런스에서 확인)


또한, Lambda의 IP가 동적이므로 데이터베이스에서 IP 허용제한을 걸어 뒀을 경우. Lambda 파이썬 프로젝트에서 데이터베이스에 접근할 경우 동적ip로 인해 접근이 안 될 수 도있습니다. 그럴경우 VPC라는 것을 통해 허용할 수있습니다. 이것 또한 여기서 다루진 않습니다.(레퍼런스에서 확인)



참고

파이썬배포- https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/python-programming-model-handler-types.html

파이썬배포 - https://docs.aws.amazon.com/ko_kr/batch/latest/userguide/batch_cwet.html

파이썬배포 - https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

파이썬배포 - https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3-example-deployment-pkg-python

CRON 시간 -https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html

VPC구성- https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/DocumentHistory_cwl.html

VPC구성 - https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/vpc.html

S3로그 - https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/S3ExportTasksConsole.html

S3로그 - https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/S3ExportTasks.html


반응형
반응형

 

아래의 파이썬 슬랫봇을 이용하여 점심 알리미 봇을 만들었다.

- Python Slack bot 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

- 파이썬 웹훅으로 만들기

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- slack를 이용한 파이썬 슬랙봇 만들기

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

파일은 여기서 확인가능하다. https://github.com/wonkwangyeon/Slack-Lunch-Bot

 

선택장애가 있는 사람들을 위한 랜덤 점심 선택 및 점심 알리미 봇.

파이썬으로 제작한 Slack 점심 알리미 봇이다. 점심 메뉴를 데이터베이스에 등록해 놓으면, 지정시간마다 점심메뉴를 봇이 슬랙채널을 통해 알려준다.

반응형

1. 특징 및 사용방법

한 주마다 메뉴가 초기화되며 같은 음식을 먹을 일이 없게 한다.

ex) 데이터베이스에 밥종류가 7가지(밥1, 밥2, 밥3, 밥4, 밥5, 밥6, 밥7)가 있다면 기본적으로 월요일 오전 9시에 메뉴가 7가지로 초기화가된다.

그리고 메뉴를 자동으로 선택해주는 알림이 오게되면 그 메뉴는 삭제가된다.

'밥3'이 선택되어 알람이 온다면 밥3은 삭제되어 (밥1, 밥2, 밥4, 밥5, 밥6, 밥7) 이렇게 남게되고 그 주에는 밥3은 다시는 선택되지 않게 된다.

이렇게 날마다 밥들이 선택되고 하나씩 줄어간다. 그렇기 때문에 한 주에 똑같은 메뉴를 먹을일이 없어진다.

그리고 매주 월요일 오전 9시에 새로(밥1, 밥2, 밥3, 밥4, 밥5, 밥6, 밥7)으로 초기화가 되고 다시 시작된다.

만약 밥종류가 3가지밖에 없다면 (밥1, 밥2, 밥3) 월, 화, 수 만에 밥3개를 다먹게 되면 월요일 오전 9시에 초기화되는거 처럼 자동으로 다시 초기화가 된다.

기본적인 프로그램 사용방법

  1. 밥추천/추천/메뉴추천/메뉴 추천 ex) 밥추천
  2. 추가/밥추가/메뉴추가 ex)밥추가 돈가스
  3. 삭제/밥삭제/메뉴삭제 ex) 삭제 돈가스
  4. 확인/메뉴기록/메뉴로그 ex) 확인 2018-11-07
  5. 초기화/재세팅 ex) 초기화
  6. 모든메뉴 ex) 모든메뉴
  7. 알람설정 ex) 알람설정 110000
  8. 기타설명
  9. 채널변경 및 등록 ex) 등록

1. 정상적인 채널의 알림을 위해 먼저 채널 등록을 한다

ex) 등록

2. 알람설정은 매일 점심메뉴 알람이 오는 시간 설정으로써 HHMMDD 시간으로 항상 입력해준다.

기본세팅은 110000이다. (오전 11시) ex) 알람설정 153030 (3시30분30초)

3. 메뉴로그는 날짜를 입력하게 되면 그날 어떤 음식이 자동으로 선택되었는지 알 수 있다.

항상 yyyy-mm-dd로 입력해준다. ex) 확인 2018-11-07

2. Sqlite3 Table

create table menu( 	name text not null primary key);  create table menu_log(     id integer primary key autoincrement,     name text not null,     time timestamp DATE DEFAULT(datetime('now', 'localtime')));

 

반응형
반응형

Python 3.7 버전을 사용하고 있는 도중 Sqlite3 를 사용하게 되었는 데, Parameterized Query(매개변수 쿼리)를 사용하는 도중


sql = "SELECT name FROM test WHERE id=?"
self.cur.execute(sql, (100))

ValueError: parameters are of unsupported type


이런 오류가 발생하였다.

레퍼런스를 찾아보니 https://docs.python.org/2/library/sqlite3.html

아래와 같이 사용해야 된다.

sql = "SELECT name FROM test WHERE id=?"
self.cur.execute(sql, (100,))


반응형
반응형

 

slacker를 이용한 파이썬 슬랙 봇을 만드는 방법이다. 순수하게 메세지만 보낼 예정이라면 아래의 웹훅을 추천한다.(봇을 이용하면 슬랙이 무거워짐),

슬랙에 봇을 추가 및 만드는 방법은 아래의 slackclient를 이용한 파이썬 슬랙봇 만들기에 나와있다.

 

- 파이썬 웹훅으로 만들기

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- slackclient를 이용한 파이썬 슬랙봇 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

1. slacker를 설치한다.

 

pip install slacker

 

 

2. 토큰을 발급받는다.

 

반응형
from slacker import Slacker  slack_token = '토큰'  #위에 발급받은 토큰을 적으면 됨. slack = Slacker(slack_token) slack.chat.post_message('#channel', '메세지') #채널자리에 슬랙에 있는 채널을 적으면 됨. 

 

위 소스를 실행하면 알아서 메세지가 잘 전달된다.

 

메세지를 예쁘게 보내고 싶으면

slack api 문서 - https://api.slack.com/docs/message-attachments 문서에서 attachments라고 나와 있는 것을 딕셔너리를 이용하여 보내면 된다.

 

dic = {"title": "Slack API Documentation", "color" : "#2eb886" }  attachments = [dic]  slack.chat.post_message('#channel', '메세지', attachments=attachments) #채널자리에 슬랙에 있는 채널을 적으면 됨. 

 

반응형
반응형

 

slackclient를 이용한 파이썬 슬랙 봇을 만드는 방법이다. 

순수하게 메세지만 보내고 싶다면 아래의 파이썬 웹훅 게시글을 보면되고

 

slackclient의 메세지를 예쁘게 보내고 싶다면 이 글을 보고 아래의 slacker로 파이썬 슬랙 봇 만들기를 보면 된다.

 

- 파이썬 웹훅으로 만들기.

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- 파이썬 slacker로 파이썬 슬랙 봇 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

1. https://api.slack.com 에 접속한 뒤, Your Apps에 들어간다.

 

 

 

2. Your Apps에 접속하면 아래와 같은 창이 바로 보이며, Create an App을 클릭한다.

 

 

 

3. 이름을 짓고 사용할 워크스페이스를 고른다.

 

 

4. BotUser를 등록한다.

 

 

 

5. 왼쪽의 OAuth & Permissions에 들어가서 bot을 install workspace를 하게되면 OAuth Token을 발급받게 되고 봇이 Slack에 추가된다.

그리고 Bot User OAuth Access Token을 복사한다.

 

 

 

 

반응형

 

6. Slack에서 봇을 사용할 채널에 /invite 명령어로 봇을 추가한다.

 

7. https://api.slack.com/tutorials/tags/python 사이트에 접속해서 사용 방법을 터득 하면되며,

대표적으로 How to Build Your First Slack Bot with Python(https://www.fullstackpython.com/blog/build-first-slack-bot-python.html)에 접속한다.

(소스 파일 : https://github.com/mattmakai/slack-starterbot/blob/master/starterbot.py)

 

소스를 대충 설명하자면, 

 

 

 

# instantiate Slack client slack_client = SlackClient(os.environ.get('SLACK_BOT_TOKEN')) #os.environ.get부분을 다 지우고 아까 복사한 token을 붙여넣는다. # starterbot's user ID in Slack: value is assigned after the bot starts up starterbot_id = None #----------------------------------- def handle_command(command, channel): #이 메소드에서 슬랙에서 받은 메세지를 처리한다. #----------------------------------- while True: command, channel = parse_bot_commands(slack_client.rtm_read()) if command: handle_command(command, channel) time.sleep(RTM_READ_DELAY) #TCP통신처럼 여기서 메세지 받는 것을 대기한다.

 

튜토리얼에서 워낙 잘 나와 있기 때문에 이해하기가 쉬우며 사용 또한 편리하다.

 

코드 및 사용방법 출저 : https://api.slack.com/tutorials/tags/python - How to Build Your First Slack Bot with Python(https://www.fullstackpython.com/blog/build-first-slack-bot-python.html)

반응형
반응형

 

 

파이썬으로 슬랙에 메세지를 보낼 수 있는 방법 중 하나인 웹훅(webhook)을 사용하는 방법이다. 

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

- Pyhton Slack Bot

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

 

1. Apps 옆의 + 를 누른다.

 

 

2. View App Directory.

 

 

반응형

3. incoming webhooks을 검색 하고 Add한다.

 

 

 

4. 메세지를 보낼 채널을 선택한다.

 

 

5. 아래의 Webhook URL을 복사한다. 그 밑에는 웹훅 사용법이 적혀있다.

 

 

 

6. 파이썬에 아래의 코드를 사용하여 보낸다.

 

requests.post 함수와 Json형태의 메세지를 통해 보낸다.

import json import requests   def main():      webhook_url = "복사한 url"     content = "WebHook Test"     payload = {"text": content}      requests.post(         webhook_url, data=json.dumps(payload),         headers={'Content-Type': 'application/json'}     )   if __name__ == '__main__':     main() 

 

 

7. 결과

 

 

반응형

+ Recent posts