以简单的方式或工具在 Twitter(机器人)中自动回复推文?

Posted

技术标签:

【中文标题】以简单的方式或工具在 Twitter(机器人)中自动回复推文?【英文标题】:Auto-Reply Tweets in Twitter (bot) in simple way or tools? 【发布时间】:2011-08-17 11:32:43 【问题描述】:

是任何可能且简单的方法来制作一个 twitter 机器人,它将在特定时间间隔内回复一些推文(取决于搜索词)。谁能帮帮我。

例如 twitter.com/shastribot

谢谢

【问题讨论】:

【参考方案1】:

如果你喜欢 Ruby,那么我建议使用 Twitter gem:https://github.com/jnunemaker/twitter 它使事情变得非常容易。

然后,您可以编写一个脚本来检查机器人是否有任何回复,以及是否有任何新回复发送消息。然后将其设置为一个 cron 作业,按照您认为必要的频率运行。

还有 Twitter Bot 接口,我自己没用过,但可能值得一看:http://integrum.rubyforge.org/twitter_bot/

【讨论】:

【参考方案2】:

你应该试试tweebot。它是 twitter 机器人的 python 微框架。这个库提供了内置块(如过滤器、选择器和操作),您可以组合它们来实现您的要求。例如,下一个代码演示了如何创建“转发”机器人 (more examples) 的规范实现。

# Next code demonstrates how to create simple twitter bot that select all
# friends' tweets with your mentiones and retweet they.

import tweebot as twb

def main():
    # Step 1. setup context configuration
    repeater = twb.Context(
        'app_name'        : 'repeater',
        'username'        : '<YOUR ACCOUNT NAME>',
        'consumer_key'    : '<YOUR CONSUMER KEY>',
        'consumer_secret' : '<YOUR CONSUMER SECRET>',
        'access_key'      : '<YOUR ACCESS KEY>',
        'access_secret'   : '<YOUR ACCESS SECRET>',
        'timeout'         : 10 * 60, # 10 min, ensure twitter api limits
        'history_file'    : 'history.json', # don't repeat answered tweets
    )

    # Step 2. enable pretty logging (stdout by default)
    twb.enable_logging(repeater)

    # Step 3. setup chain Selector->Filters->Action
    chain = (
        # Select recently tweets with current user mentions.
        twb.SearchMentions(),
        # Apply several filters to selected tweets:
        twb.MultiPart.And(
            # exclude answered, blocked and own tweets
            twb.BaseFilter,
            # then leave only friends tweets (friends list will be cached)
            twb.UsersFilter.Friends(),
            # and finally, exclude tweets with invalid content
            twb.BadTweetFilter),
        # And now, retweet remain tweets 
        twb.ReplyRetweet)

    # Step 4. start processing 
    repeater.start_forever(*chain)

if __name__ == '__main__':
    main()

【讨论】:

【参考方案3】:

Ruby 的twitter gem 是一个非常好的。您可以使用twitter API 来查看可用的方法。

您可以从 Twitter::REST::Client 开始,如下所示:

twitter_client = Twitter::REST::Client.new do |config|
  config.consumer_key        = "YOUR_CONSUMER_KEY"
  config.consumer_secret     = "YOUR_CONSUMER_SECRET"
  config.access_token        = "YOUR_ACCESS_TOKEN"
  config.access_token_secret = "YOUR_ACCESS_SECRET"
end

那么您可以将您的 twitter_client 用于各种目的。例如,您可以使用以下方式将推文发布到您的个人资料:

twitter_client.update("I am posting this tweet from my Ruby program")

您可以通过提供这样的推特用户名来获取所有推文的列表:

twitter_client.user_timeline("YOUR_TWITTER_USER_NAME").each do |tweet|
  puts tweet.text
end

要搜索推文,请查看this。

【讨论】:

以上是关于以简单的方式或工具在 Twitter(机器人)中自动回复推文?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过编程方式获取 Twitter 帐户年龄?

iPhone以编程方式在Twitter上关注用户

以编程方式在 Dojo Datagrid 中自定义列排序

如何使用 Quickblox 在 Chat ViewController 中自定义或使用我自己的 nib 作为工具栏?

我可以在 Eclipse 中自定义语法高亮显示以不同方式显示八进制文字吗?

目前最流行的机器学习算法是啥