我需要定期返回一个 twitter 帐户的所有新关注者的列表(即自上次检索关注者列表以来),但 Twitter API 似乎只提供获取该帐户所有当前关注者列表的功能。
除了每次获取此完整列表并将其与上次检索时的存储版本进行比较之外,还有其他方法可以获取新的关注者吗?
divvoted.com、mrtweet 等网站必须以某种方式做到这一点!我是否遗漏了某些东西,或者它只需要上面描述的圆形方法吗?
是的,您必须保留自上次更新以来的关注者列表,因为 twitter 不会将 api 客户端与状态相关联。“最后一次检索列表”的定义缺少“由谁”。
您始终可以尝试从 Twitter 中捕获带有以下消息的邮件:“...正在 Twitter 上关注您”。这可能比使用 Twitter API 更难一些,并且有可能丢失邮件(以防邮件未送达),但它会保护一些有价值的 API 调用。但这不包括取消关注...
如果您尝试按照您描述自己的方式进行操作。Twitter API 按“新关注者优先”的顺序返回关注者,因此在第一次点击(您存储的列表版本中列出的关注者)时,您可以停止寻找新关注者。
我最近开始为此使用Zapier。
他们有一个 Zap,它使用 Twitter API 来获取新的关注者(您或您希望监控的任何用户名)。Zap 监控新的关注者,然后可以将记录添加到 Google 表格、Trello、Slack 等。
它不会告诉你谁没有关注,但你总是可以将你的关注列表与你的完整列表相冲突。
它还会在关注时触发 - 因此有人可以关注、取消关注并再次关注并出现在列表中两次。如果您有关注者列表,则易于管理。
这里有文档: https ://zapier.com/zapbook/zaps/201/log-new-twitter-followers-google-spreadsheet/
对于授权用户,您可以使用 Twitter Stream API 来跟踪新关注者: https ://dev.twitter.com/streaming/overview/messages-types#Events_event
我将它与 C# 库https://github.com/linvi/tweetinvi一起使用 ,代码非常简单:
Auth.SetUserCredentials("CONSUMER_KEY", "CONSUMER_SECRET", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET");
var stream = Stream.CreateUserStream();
stream.FollowedByUser += (sender, args) =>
{
Console.WriteLine("You have been followed by " + args.User);
};
stream.StartStream();