나는 또한 트위터 보석을 사용하고 있으며 트위터 DM에 대한 내 서약, 직접 메시지 컨트롤러 및 아약스를 사용하고 권한 부여 컨트롤러를 사용하고 있습니다. AppConfig는 내 cred가 포함 된 yml 파일입니다.
authorizations_controller.rb
class AuthorizationsController < ApplicationController
def new
set_oauth
render :update do |page|
page.redirect_to @oauth.request_token.authorize_url
end
end
def show
@oauth ||= Twitter::OAuth.new(AppConfig['consumer']['token'], AppConfig['consumer']['secret'])
@oauth.authorize_from_request(session['rtoken'], session['rsecret'], params[:oauth_verifier])
session['rtoken'] = nil
session['rsecret'] = nil
session['atoken'] = @oauth.access_token.token
session['asecret'] = @oauth.access_token.secret
redirect_path = session['admin'] ? admin_tweets_path : root_path
redirect_to redirect_path
end
end
direct_messages_controller.rb
class DirectMessagesController < ApplicationController
before_filter :authorize
def create
@client.update("@#{AppConfig['user']} #{params[:tweet][:text]}")
render :update do |page|
page.replace_html 'tweet_update', "Your tweet has been sent to #{AppConfig['user']} and should be updated momentarily."
end
end
end
view.html.haml 내 필터 전에 단지 세션 확인 '인증'
#tweet_update
- form_remote_tag :url => direct_messages_url, :method => :post, :loading => "$('tweet_update').hide();$('loading').show()", :complete => "$('tweet_update').show();$('loading').hide()" do
%div{:class => "subheader float_left"}Tweet to Whoever
- if session_set?
%input{:type => "image", :src=>"/images/sendButton.jpg", :class =>"float_right", :style=>"margin-bottom: 4px"}
- else
%div{:class => "float_right", :id => "twitter_login_button"}= link_to_remote image_tag('twitter-darker.png'), :url => new_authorization_url, :method => :get
.float_clear
#tweetbox_bg
- textarea_options = {:id => "tweetbox", :style => "overflow: auto", :rows => "", :cols => ""}
- textarea_value = nil
- unless session_set?
- textarea_options.merge!(:disabled => "disabled")
- textarea_value = "Please login to tweet Whoever!"
= text_area_tag 'tweet[text]', textarea_value, textarea_options
:
을
희망이 도움이됩니다. 앱을 시작했을 때 트위터 클라이언트가 이미 인증 된했기 때문에 내 컨트롤러 방법으로, 완벽하게 작동하는 것이 추가
@twitter = Twitter::Client.new
@twitter.update(tweet)
:
약간의 땜질 후에, 나는 그것을 스스로 알아 냈다. 아래를 참조하십시오. – bjork24