gpt4 book ai didi

python - 如何使用 Twitter Streaming API 跟踪我没有登录信息的其他帐户的新关注者?

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:00 24 4
gpt4 key购买 nike

我的代码很大程度上基于这个优秀的 tutorial在 Ars Technica,所以我能够跟踪我自己的新关注者,因为我的登录信息是硬编码的。但是,我也想跟踪其他人帐户的新关注者。如果没有他们的密码,我该如何执行此操作?

import pycurl, json, StringIO
STREAM_URL = "http://stream.twitter.com/1/statuses/filter.json?follow=[userid1],[userid2]&track=[keyword1],[keyword2]"
REST_URL = "http://api.twitter.com/1/"

class Client:
def __init__(self):
self.friends = []
self.buffer = ""
self.userid = None
self.conn = pycurl.Curl()

def authenticate(self, username, password):
output = StringIO.StringIO()
self.conn.setopt(pycurl.USERPWD, "%s:%s" % (username, password))
self.conn.setopt(pycurl.URL, REST_URL + "account/verify_credentials.json")
self.conn.setopt(pycurl.WRITEFUNCTION, output.write)
self.conn.perform()

data = json.loads(output.getvalue())
if "error" in data: return False
self.userid = data["id"]
return True

def connect(self):
self.conn.setopt(pycurl.URL, STREAM_URL)
self.conn.setopt(pycurl.WRITEFUNCTION, self.on_receive)
self.conn.perform()

def on_receive(self, data):
self.buffer += data
if data.endswith("\r\n") and self.buffer.strip():
content = json.loads(self.buffer)
self.buffer = ""
print content

if "friends" in content:
self.friends = content["friends"]

elif "event" in content and content["event"] == "follow":
id_list = ['[userid1]','[userid2]']
print "NEW FOLLOWER!!"
print "target id:", content["target"]["id"]
if content["target"]["id"] in id_list:
print content
print "New follower:", content["source"]["name"], "(@" + content["source"]["screen_name"] + ")"
elif content["source"]["id"] == self.userid:
self.friends.append(content["target"]["id"])

elif "text" in content:
to = content["in_reply_to_user_id"]
if to and to != self.userid and to not in self.friends: return
if to == self.userid: print "(REPLY)",
print u"{0[user][name]}: {0[text]}".format(content)

client = Client()
if client.authenticate("[username]", "[password]"):
client.connect()
else:
print "Login credentials aren't valid!"

最佳答案

Taylor Singletary Twitter 回复 the same question在 Twitter 开发讲座的 Google 小组中:

This is unfortunately not currently possible with the Streaming API. Given the flexibility of followers/ids and friends/ids API methods, tracking changes over time with those methods would likely be your best avenue.

关于python - 如何使用 Twitter Streaming API 跟踪我没有登录信息的其他帐户的新关注者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523364/

24 4 0