make Python 3.x Slack(slackclient)使用公司代理

时间:2017-09-22 13:03:57

标签: python python-3.x proxy slack slack-api

我有一些Python 3代码,可以使用模块slackclient发布到频道,没问题。但是,如果我从我们的公司服务器运行此代码,其中所有流量需要通过代理,它将失败。我知道代理服务器和端口,必须使用它们从我们的服务器运行pip,如下所示:

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

这很有效。如果我不代理pip,则无法按预期连接。所以这告诉我,我只需要弄清楚如何让我的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")

我似乎无法弄清楚代理设置的位置,我必须遗漏一些简单的东西。我对其他开箱即用的想法持开放态度,使这一切都能正常运行,但我无法在服务器上安装任何内容以使所有流量通过代理或更改代理设置。

1 个答案:

答案 0 :(得分:3)

想出来。我会留下这个以防其他人有同样的问题。看起来它是内置的,只需传递代理词典。

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

嗯,这很容易:)