2017-09-22 5 views
0

파이썬 3 코드를 가지고 있으며 채널 slackclient를 사용하여 채널에 게시 할 수 있습니다. 그러나 모든 트래픽이 프록시를 통과해야하는 회사 서버에서이 코드를 실행하면 실패합니다. 프록시 서버와 포트를 알고 있으며 다음과 같이 서버에서 pip를 실행해야합니다.Python 3.x Slack (slackclient)에서 기업 프록시를 사용합니다.

pip install --proxy proxy.evilcorp.com:8080 slackclient 

위대한 작품입니다. 프록시를 프록시하지 않으면 예상대로 연결되지 않습니다. 그래서 나는 단지 프록시를 사용하기 위해 내 슬랙 클라이언트 코드를 얻는 방법을 알아 내야한다고 말합니다.하지만 어떻게해야합니까? 여기 내 코드 :

from slackclient import SlackClient 

def get_slackclient(): 
    token = "blah-blah-token" 
    sc = SlackClient(token) 
    return sc 

def post_slackmessage(username,channel,text): 
    sc = get_slackclient() 
    try: 
     sc.api_call("chat.postMessage",channel=channel,text=text,username=username,unfurl_links="true") 
    except: 
     print ("failed to post messaage to slack") 

post_slackmessage("test_slack", "test", "hurrah it posted") 

프록시 설정을 어디에 넣을 지 알 수없는 것 같습니다. 나는이 모든 작업을하기 위해 상자 아이디어 밖에서 다른 사람에게 개방적이지만 모든 트래픽이 프록시를 통과하거나 프록시 설정을 변경하도록 서버에 아무 것도 설치할 수 없습니다.

답변

2

알아 냈어. 다른 누군가가 똑같은 문제가 생길 경우에 대비하여 여기에 남겨 두겠습니다. 이 내장처럼, 단지에서 프록시 DICT을 통과 보인다.

def get_slackclient(): 
    #https://api.slack.com/custom-integrations/legacy-tokens 
    token = "blah-blah-blah" 
    proxies = dict(https="proxy.evilcorp.com:8080", http="proxy.evilcorp.com:8080") 
    sc = SlackClient(token, proxies=proxies) 
    return sc 

글쎄, 그것은 쉬웠다 :