如何将推文发送到我的 Twitter 帐户?

Posted

技术标签:

【中文标题】如何将推文发送到我的 Twitter 帐户?【英文标题】:How can I send tweets to my Twitter account? 【发布时间】:2014-10-24 06:37:39 【问题描述】:

每次用户发布 cmets 时,我希望它自动向我的 Twitter 发送相同的评论。

首先,我已经完成了 Twitter 开发者设置。

所以我在我的应用程序中做了一个测试操作,让它向我的 Twitter 帐户发送一条推文。 但是,它说这个错误

NoMethodError (undefined method `[]' for nil:NilClass):
app/controllers/top_controller.rb:173:in `test_action'

我该如何解决这个问题?这些是我的代码

已捆绑的相关宝石(我在 Rails 3.2.11 上)

gem 'omniauth-twitter'
gem 'twitter'
gem 'figaro'

config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
    Twitter.configure do |config|
        config.consumer_key = ENV["TWITTER_KEY"]
        config.consumer_secret = ENV["TWITTER_SECRET"]
    end
end

config/application.yml

TWITTER_KEY: 6TeBX6HkeHzMXesgc
TWITTER_SECRET: JyfOndg8xHcM81KEpgmBT7h2vFJJujMP14YTdt6ruvLbsQk

test_action

def test_action  
    @twitter = Twitter::Client.new(oauth_token: request.env["omniauth.auth"][:credentials][:token], oauth_token_secret: request.env["omniauth.auth"][:credentials][:secret])
    @twitter.update("Your message")
    flash[:notice] = "Successfully tweeted on your account."
    redirect_to root_path
    return 
end

【问题讨论】:

【参考方案1】:

我认为您的问题可能与您的 Twitter 控制器配置有关:

代替:

@twitter = Twitter::Client.new(oauth_token: request.env["omniauth.auth"][:credentials][:token], oauth_token_secret: request.env["omniauth.auth"][:credentials][:secret])

试试这个:

@twitter = Twitter::REST::Client.new do |config|
  config.consumer_key = ENV['CONSUMER_KEY']
  config.consumer_secret = ENV['CONSUMER_SECRET']
  config.access_token = request.env["omniauth.auth"][:credentials][:token]
  config.access_token_secret = request.env["omniauth.auth"][:credentials][:secret]
end

您可能还想确认您的 API 密钥具有读写权限,您可以在您的 Twitter 开发者帐户 here 上查看。

【讨论】:

以上是关于如何将推文发送到我的 Twitter 帐户?的主要内容,如果未能解决你的问题,请参考以下文章

使用 tweepy 和 discord.py 将推文发布到特定频道

使用一个帐户的 Twitter API 从另一个帐户发送推文?

如何将推特链接转换为嵌入式推文?

当机器人应用程序是在单独的帐户下创建时,我如何从我的机器人帐户发送推文?

实时检索推文并发送带有推文文本的电子邮件

如何使用变音符号发送 Twitter 状态更新?