Ruby on rails 理解twitter gem自述
我对本书自述的这一部分有几个问题 配置后,可以按如下方式发出请求:Ruby on rails 理解twitter gem自述,ruby-on-rails,twitter,devise,omniauth,Ruby On Rails,Twitter,Devise,Omniauth,我对本书自述的这一部分有几个问题 配置后,可以按如下方式发出请求: client.update("I'm tweeting with @gem!") 1) 您将密钥配置块放在哪里?我看到一些指南将其放在单独的文件中,如config/twitter\u credentials.rb,omniauth.rb,或designe.rb。如果我使用的是Desive,那么这4把钥匙是否都应该在Desive文件中 2) 调用.update方法时,谁会发送推文?应用程序帐户或使用我的网站的登录用户 3) 访问
client.update("I'm tweeting with @gem!")
1) 您将密钥配置块放在哪里?我看到一些指南将其放在单独的文件中,如config/twitter\u credentials.rb
,omniauth.rb
,或designe.rb
。如果我使用的是Desive,那么这4把钥匙是否都应该在Desive文件中
2) 调用.update
方法时,谁会发送推文?应用程序帐户或使用我的网站的登录用户
3) 访问令牌是否允许用户从其帐户而不是应用程序的帐户发送推文
代码显示如何让用户从他们自己的帐户推特将不胜感激,因为他们似乎从自述中丢失
twitter.rb
的文件中。但是,在这种情况下,我认为您实际上不需要初始值设定项access\u-token
和access\u-token\u-secret
所属的用户就是推特用户access\u令牌
允许用户从其帐户发送tweet。您可以从omniauth twitter
的响应中获得该令牌和相应的秘密
omniauth = env['omniauth.auth']
user.access_token = omniauth.credentials.token
user.access_token_secret = omniauth.credentials.secret
user.save
当然,为了能够保存令牌和密码,您需要将适当的字段(access\u-token
和access\u-token\u-secret
)添加到用户表中class SomeController < ApplicationController
def some_action
client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"]
config.access_token = current_user.access_token
config.access_token_secret = current_user.access_token_secret
end
client.update("I'm tweeting with @gem!")
end
end
class SomeController
我今天真的看到了这个<代码>您的访问令牌此访问令牌可用于代表您自己的帐户发出API请求。不要与任何人共享您的访问令牌机密代码>看来#1是正确的,#2和#3不完全正确。因此,访问令牌似乎是允许他人代表您自己的应用程序帐户发送tweet。这意味着消费者代币的使用是为了让应用程序能够代表登录用户发送推文。看来使用更新方法发送推文并不是最好的方式。你必须连接并设计所有的推特前页面。Twitter有一个共享按钮,可以转到预先构建的页面,该页面预先填充Twitter,允许用户确认,允许用户登录Twitter(如果尚未登录),并将您重定向回Twitter。看来还是用这个比较好
class SomeController < ApplicationController
def some_action
client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"]
config.access_token = current_user.access_token
config.access_token_secret = current_user.access_token_secret
end
client.update("I'm tweeting with @gem!")
end
end