이미 SLACK_TOKEN 환경 변수를 설정했습니다. 그러나 "SLACK_TOKEN=os.environ.get('SLACK_TOKEN')"
은 "없음"을 반환합니다. 유형은입니다. 나는 os.environ.get 환경 변수의 값을 가져 오지 생각합니다. 나머지 코드는 실행되지 않습니다.os.environ.get()은 환경 값을 Windows에서 반환하지 않습니까?
import os
from slackclient import SlackClient
SLACK_TOKEN= os.environ.get('SLACK_TOKEN') #returning None
print(SLACK_TOKEN) # None
print(type(SLACK_TOKEN)) # NoneType class
slack_client = SlackClient(SLACK_TOKEN)
print(slack_client.api_call("api.test")) #{'ok': True}
print(slack_client.api_call("auth.test")) #{'ok': False, 'error': 'not_authed'}
def list_channels():
channels_call = slack_client.api_call("channels.list")
if channels_call['ok']:
return channels_call['channels']
return None
def channel_info(channel_id):
channel_info = slack_client.api_call("channels.info", channel=channel_id)
if channel_info:
return channel_info['channel']
return None
if __name__ == '__main__':
channels = list_channels()
if channels:
print("Channels: ")
for c in channels:
print(c['name'] + " (" + c['id'] + ")")
detailed_info = channel_info(c['id'])
if detailed_info:
print(detailed_info['latest']['text'])
else:
print("Unable to authenticate.") #Unable to authenticate
환경을 올바르게 설정 했습니까? 쉘에서 $ SLACK_TOKEN "'을 echo 할 경우 어떻게됩니까? –
'.get (..)'은 키를 찾을 수 없다면 보통'None'을 반환합니다. 즉,'environ'에'SLACK_TOKEN'이 없다는 것을 의미합니다. –
Windows에서 설정 한 경우 셸을 다시 시작하거나 새 쉘을 열어야합니다. 기존 쉘은 새로 설정된 환경 변수를 가져 오지 않습니다. – Sagar