instapush로 메시지 푸시 전송 요청을 보내보자

instapush를 이용해서 앱으로 푸시를 전송해보기

github에 파이썬 래퍼가 있다지만, 그냥 curl을 이용해서 푸시.


#!c:/python34/python.exe
import subprocess
def send_instapush(msg):
    json_param = '{"event":"newpost", "trackers":{"keyword":"%s"}}'%(msg,)
    cmds = ["curl", "-X" "POST", "-H", "x-instapush-appid: 5###################6", 
            "-H", "x-instapush-appsecret: a##############################a",
            "-H", "Content-Type: application/json",
            "-d", json_param,
            "https://api.instapush.im/v1/post"]
    r = subprocess.check_output(cmds, shell=True, universal_newlines=True)
    print(r)

if __name__ == '__main__':
    import sys
    if len(sys.argv) > 1:
        send_instapush(sys.argv[1])
  • curl 명령을 사용하는 코드이므로, 윈도에서라면 msys32 같은 툴을 설치해야 한다. (윈도용 curl이 여기에 포함되어 있는지는 모르겠다.)
  • JSON으로 된 푸시 콘텐츠를 명령줄에서 모두 쓸 수 없어서 이 방법을 택했다. 물론 urllib.Request를 이용하면 모든 플랫폼에서 쓸 수 있는 형태로 만들수는 있겠지…
  • os.popen이 아니라 subprocess.chech_output을 썼다. subprocess 모듈은 파이썬 내에서 외부 프로그램을 자식 프로세스로 실행해서 그 리턴코드나 출력 문자열을 받아올 수 있는 기능을 제공한다. 예전에는 os.spawn 등의 함수가 있었지만, 새로 제공되는 이 기능들을 쓰는 편이 쉽고 안전하다.

참고로 subprocess에 대한 자세한 내용은 해당 포스팅을 참고하자.