[Python] 파이썬으로 페이스북 메신저로 메시지 보내기 2 Develop Tip

지난번에 파이썬으로 페이스북 메신저로 메시지 보내기를 살펴보았습니다.

그런데 이것을 테스트 하면 할 수록,

Client() 생성자에 10여초 이상 걸리고
send()를 하는데 적게는 2초, 많게는 6초 이상 시간이 소요되는 것이었습니다.

다시 테스트를 하여 원인을 찾았습니다.

늦는 원인은 이전 버전은 is_logined 새버전은 isLoginedIn 인데
이 함수에서 5초 이상을 잡아 먹는 것이었습니다.
암튼 버전이 틀려졌네요.


버전은 0.9.3 이었습니다.
어찐된 것인지 조사를 하다가
fbchat 모듈을 살펴보는데... 

아뿔사. 일이주 지난 것 같은데 버전업이 되었네요.

아마도 내부 프로토콜이 변경된 느낌입니다.

결국 지난번 샘플 코드는

#!/usr/bin/env python
# encoding=utf-8

from fbchat import Client
fc = Client('______@gmail.com', '______')
friends = fc.getUsers('____')
friend = friends[0]
f_info = fc.getUserInfo(friend.uid)
print(f_info)
sent = fc.send(friend.uid, "안녕 파이썬 프로그램에서 테스트 메시지 보내봄")
if sent:
    print("Message sent successfully!")


이었습니다.

오늘자 (2017.6.29)로 새로 업데이트를 하니,

(python3) $ pip install -U fbchat
...
(python3) $ pip freeze | grep fbchat
fbchat==1.0.9

버전이 약간 올랐지만 메이저 버전이 0에서 1로 올라갔군요.
또한 내부 함수명도 변경되어 기존 코드는 오류가 발생합니다.

서드파티 모듈을 사용할 때에는 이런 경우가 비일비제합니다.
따라서 개발 했을 떄의 버전 (pip의 Freeze 명령이 있는 이유겠죠?)을
잘 유지하는 것도 중요하지만,
최신 버전을 적용하여 기능이나 성능 향상을 꽤하는 것도 
그 이상으로 중요합니다.


따라서 기존 소스는
다음과 같이 변경되었습니다.

#!/usr/bin/env python
# encoding=utf-8

from fbchat import Client
fc = Client('______@gmail.com', '______')
friends = fc.searchForUsers('____')
friend = friends[0]
sent = fc.sendMessage("안녕 파이썬 프로그램에서 테스트 메시지 보내봄", 
                                  thread_id=friend.uid, thread_type=ThreadType.USER)
if sent:
    print("Message sent successfully!")

위에 붉은 부분이 변경되었습니다.

수정된 것으로 다시 송신을 해보니,

Client 생성 (접속 및 해당 인스턴스 build 등)에는 5초정도 소요되었으나
나머지 해당 사용자 id를 구해 메시지 보내는 데까지는 0.5초 정도 소요되었습니다.


어느 분께는 도움이 되셨기를...

덧글

댓글 입력 영역

구글애드텍스트