使用Twitter gem发送直接消息

问题描述 投票:0回答:1

我正在使用Twitter宝石开发Twitter机器人。这个机器人很喜欢并追随人们。但是现在我想用这个宝石发送私人消息,我不能。

这是我正在测试的内容:

def login_twitter_stream

        client_streaming = Twitter::Streaming::Client.new do |config|
          config.consumer_key        = ENV["TWITTER_CONSUMER_KEY"]
        config.consumer_secret     = ENV["TWITTER_CONSUMER_SECRET"]
        config.access_token        = ENV["TWITTER_ACCESS_TOKEN"]
        config.access_token_secret = ENV["TWITTER_ACCESS_TOKEN_SECRET"]
    end
return client_streaming
end


def login_twitter



        client_REST = Twitter::REST::Client.new do |config|
          config.consumer_key        = ENV["TWITTER_CONSUMER_KEY"]
        config.consumer_secret     = ENV["TWITTER_CONSUMER_SECRET"]
        config.access_token        = ENV["TWITTER_ACCESS_TOKEN"]
        config.access_token_secret = ENV["TWITTER_ACCESS_TOKEN_SECRET"]
    end
return client_REST
end
def direct_messages

    client = login_twitter

    client.search("#helloworld", result_type: "recent").take(5).each do 
    client.create_direct_message("#{tweet.user}","hello this is a test!",options={})
end
end

direct_messages

这是我的一个简单错误

client.create_direct_message("@username","hello this is a test!",options={})

event.message_create.target.recipient_id: '@username' is not a valid Long (Twitter::Error::BadRequest)

是这个:

undefined local variable or method `tweet' for main:Object (NameError)

希望您有解决方案!祝你有美好的一天。

ruby twitter
1个回答
1
投票

获取要与之发送消息的Twitter的ID。您可以使用此link获取ID。

然后您可以执行命令:

client.create_direct_message('<replace with the twitter Id you obtained>',"hello this is a test!",options={})

在您的示例中,tweet.user意味着,有一个tweets-table(模型类),twitter ID保存在用户列中。

© www.soinside.com 2019 - 2024. All rights reserved.