所以我有以下python代码,它通过Tweepy接收收到的直接消息的通知:
#!/usr/bin/env python
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import simplejson as json
consumer_key = "secret"
consumer_secret = "secret"
access_token = "secret"
access_token_secret = "secret"
class StdOutListener(StreamListener):
def __init__(self):
print "init"
def on_connect(self):
print "Connected"
def on_disconnect(self, status):
print ("Disconnected", status)
def on_direct_message(self, status):
print ("on_direct_message", status)
def on_data(self, status):
# print ("on_data", status)
decoded = json.loads(status)
## grab the direct message
directMessage = decoded['direct_message']
message = directMessage.get('text', None)
message.strip()
print "message:*", message, "*"
return True
def on_error(self, status):
print ("on_error", status)
if __name__ == '__main__':
## Connect to Twitter
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
## Init the StreamListener
print ("Init Stream")
l = StdOutListener()
stream = Stream(auth, l)
stream.userstream()
当它运行时,我发送直接消息"测试消息"我将以下内容打印到控制台:
message:* text message *
即消息被接收并解析但在任一端用空格填充,而message.strip()甚至没有纠正。如果我取消注释print directMessage行并查看Twitter发送的json,则没有空格。
如果我的JSON编辑或使用tweepy或其他内容出现问题,我无法解决问题。
我也尝试过使用json包以及simplejson。