2016-11-23 24 views
10

Bu basit bir soru olabilir, ancak iş alamıyorum.slack.client içinde kullanıcı nasıl anılır?

Bu bir mesaj gönderir

from slackclient import SlackClient 
sc = SlackClient(token) 
message = sc.api_call(
    'chat.postMessage', 
    channel='#channelname', 
    text='This is a test.' 
) 

, bir kanalda bir kullanıcı söz Gevşek Python Api kullanıyorum ve burada belgeye bahsediyorum, https://api.slack.com/methods/chat.postMessage ve benim kod kadar basittir kanal, ancak kullanıcılardan bahsetmek için herhangi bir seçenek bulamıyorum. Ve

text='@someone This is a test.' 

mesajı yayınlanacaktır olarak ama düz metin olarak böyle mesajın içindeki @someone koymak için çalıştı, ama gerçekten birinden bahsederek. BTW, Test Simgesi kullanıyorum (Veya bu özellik yalnızca yetkili belirteç için kullanılabilir mi?)

Bunu yapmak için herhangi bir seçenek veya yöntem var mı?
Önceden teşekkür ederiz.

+1

Şuna bir bakın: http://stackoverflow.com/questions/36414427/how-to-add-mention-in-response-to-slash-commands-in-slack/36463098#36463098 –

+0

@WilhelmKlopp Teşekkür ederiz öneri. Yardımcı olur. Ancak, "kullanici_adı" mesajdaki bir kişiden bahsetmeden botun görünen adını değiştirecektir. Cevabımı aşağıya yükledim ve bu durumda kullanıcı kimliğini almamız gerekmediğine inanıyorum. – HaipengSu

cevap

17

Biraz keşif yaptıktan sonra, çözümü oldukça basit buldum. Nasıl özleyebildiğimi bilmiyorum.

message = sc.api_call(
    'chat.postMessage', 
    link_names=1, 
    channel='#channelname', 
    text='@someone This is a test.' 
) 

kısa mesajla otomatik kanal veya kullanıcı adları bağlama seçeneğini link_names=1 kullanın. Bu hile yapacak.

Herkese teşekkürler.

+0

Bunu nasıl özlediğime dair bir fikrim yok, ama aynı problemi yaşıyordum. Teşekkür ederim! – gkrizek

+0

Sorun değil, yardımcı olabileceğine sevindim. – HaipengSu

+0

Asıl soru şu: neden link_names için varsayılan 1 olarak ayarlanmış değil? Çok teşekkürler! – ScottieB