2016-04-08 31 views
1

Bir ayrılma kanalından tüm ayrıntıları almalı ve basit bir metin dosyasına dökmem gerekir. i tanımak kadarBir sessiz kullanıcı kimliğini yanıttan nasıl okuyabilir ve kullanıcı adınızı edinebilirsiniz,

{u'has_more': False, 
u'is_limited': True, 
u'messages': [{u'text': u'This is not a test!', 
       u'ts': u'1459763505.000003', 
       u'type': u'message', 
       u'user': u'U03FE3Z7D'}, 
       {u'subtype': u'bot_message', 
       u'text': u'This is a test!', 
       u'ts': u'1459750060.000002', 
       u'type': u'message', 
       u'username': u'facsimile_test'}], 
u'ok': True} 

    This is not a test! 
    This is a test! 

Bu benim için iyi bir malzeme .. ama değmez:

payload = {'token': 'XXXXXX', 'channel': 'XXXXXX' , 'count': '10'} 
r = requests.get('https://slack.com/api/channels.history', params=payload) 
pprint(r.json()) 
k = r.json()for msg in k['messages']: 
    print msg['text'] # this extracts the text field from json 

Bu bana benziyor json içinde yanıt alır: Ben kullanarak bilgi almak mümkün kullanıcı adı da. Sana bir piton sözlük, değil json var ne var

-- username1 
     - messages 
-- username2 
     - message 
+0

Herhangi bir hatayla karşılaşıyor musunuz? Neyi başarmaya çalıştığın çok net değil. – AKS

+0

Ben gerçekten userid kullanıcı adını almak için emin değilim, bu yüzden bu kullanıcı kodu alıyorum nerede userid 've' kullanıcıadı 'temelde ben userid alıyorum ve ben okumak için kodu – PythonFreak

cevap

-1

gibi bir metin dosyasına tüm mesajları damping web API laçka kimliği geçirerek ve ismini almakla ve bundan sonra intersted am.

Kullanıcının auth bilgisi ile istek göndermek için requests kullanmayı deneyin. Gevşek API (muhtemelen) Farklı bir auth gerektiriyorsa

resp = requests.get("http://yourslackapiendpoint", auth=("user", "password")) 
data = resp.json() 
# unmarshal JSON to a dict 
d = json.loads(data) 

# loop the dictionary and write to a file 

, requests doc üzerinde paametreleri nasıl görüyoruz. In-aslında username olduğu yanıtından name alanını alabilirsiniz buradan,

payload = {'token': 'XXXXXX', 'user': 'XXXXXX'} 
r = requests.get('https://slack.com/api/users.info', params=payload) 

Ve:

3

Gevşek bir API endpoint kullanıcı kimliği kullanarak bir kullanıcının bilgi almak için sağlar.

Bu bilgileri bireysel kullanıcılar için almak istemiyorsanız, users.list'u da edinebilirsiniz. Ve daha sonra userid ve username arasında bir eşleme oluşturun, böylece istediğiniz zaman erişebilirsiniz.

+0

kod yok userid ve kullanıcı adı için gevşek bir istek göndermek, daha sonra kullanıcı adı ve ilgili usermageage yazdırmak – PythonFreak