Rails로 만든 앱에서 트윗
11160 단어 젬루비RailsTwitterAPI
TwitterApp 만들기
htps : // 아르 ps. 라고 r. 코m/ 방문. (전화 번호 등록된 Twitter 계정이 필요.)
↓
Create New App을 클릭하여 앱 작성 화면으로 이동합니다.
↓
callback URL에 「 htp://192.168.33.11 (혹은 사용하고 있는 앱의 URL)」을 지정해 둡니다.
↓
필요한 항목을 입력하여 응용 프로그램을 만듭니다.
‘Allow this application to use ‘Sign in with Twitter’에 체크를 넣으면 두 번째 로그인 이후에는 인증 화면을 생략할 수 있습니다.
Keys and Access Tokens
하단의 'Create my access token'을 눌러 access token을 생성한다.
이 중에서
사용.
이번의 목적은 트윗입니다만, 권한을 「Read and Write」로 해 둡니다.
gem 추가
gem 'omniauth'
gem 'omniauth-twitter'
gem 'settingslogic'
gem 'twitter', "~> 4.8"
$ bundle install
controller와 model 작성·route 설정
$ rails g model tweet
$ rails g controller tweets index new edit
◯◯_create_tweet.rbclass CreateTweets < ActiveRecord::Migration[5.1]
def change
create_table :tweets do |t|
t.text :text
t.timestamps
end
end
end
tweets_controller.rbclass TweetsController < ApplicationController
require "twitter"
before_action :set_client, only: [:post]
before_action :set_tweet, only: [:edit, :update, :destroy, :post]
def index
@tweets = Tweet.all
end
def new
@tweet = Tweet.new
end
def create
if Tweet.save(tweet_params)
redirect_to tweets_url
else
redirect_to new_tweet_url
end
end
def edit
end
def update
respond_to do |format|
if @tweet.update(tweet_params)
format.html { redirect_to tweets_url, notice: 'Tweet was successfully updated.' }
# format.json { render :show, status: :ok, location: @tweet }
else
format.html { render :edit }
# format.json { render json: @tweet.errors, status: :unprocessable_entity }
end
end
end
def destroy
respond_to do |format|
format.any
if @tweet.destroy
redirect_to tweets_url
format.html { redirect_to tweets_url, notice: 'Tweet was successfully destroyed.' }
else
format.json { head :no_content }
end
end
end
def post
@client.update(@tweet)
redirect_to tweets_url
end
private
def tweet_params
params.require(:tweet).permit(:text)
end
def set_tweet
@tweet = Tweet.find(params[:id])
end
def set_client
@client = Twitter.configure do |config|
config.consumer_key = 'YOUR_CONSUMER_KEY'
config.consumer_secret = 'YOUR_CONSUMER_SECRET'
config.oauth_token = 'YOUR_OAUTH_TOKEN'
config.oauth_token_secret = 'YOUR_OAUTH_TOKEN_SECRET'
end
end
end
config/routes.rbRails.application.routes.draw do
resources :tweets, only: [:index, :new, :create, :edit, :update, :destroy] do
collection do
get 'post'
end
end
end
저장된 트윗 목록에서 게시
app/views/tweets/index.html.erb<div>
<table>
<thead>
<tr>
<th>ID</th>
<th>Text</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @tweets.each do |tweet| %>
<tr>
<td><%= tweet.id %></td>
<td><%= tweet.text %></td>
<% tweet_post_url = 'post?id=' + tweet.id.to_s %>
<td><%= link_to 'Tweet',tweet_post_url, data: { confirm: 'Are you sure?' } %></td>
<td><%= link_to 'Edit', edit_tweet_path(tweet) %></td>
<td><%= link_to 'Destroy', tweet, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
Reference
이 문제에 관하여(Rails로 만든 앱에서 트윗), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ShoutaWATANABE/items/c0f452befb8df201e112
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'omniauth'
gem 'omniauth-twitter'
gem 'settingslogic'
gem 'twitter', "~> 4.8"
$ bundle install
$ rails g model tweet
$ rails g controller tweets index new edit
◯◯_create_tweet.rb
class CreateTweets < ActiveRecord::Migration[5.1]
def change
create_table :tweets do |t|
t.text :text
t.timestamps
end
end
end
tweets_controller.rb
class TweetsController < ApplicationController
require "twitter"
before_action :set_client, only: [:post]
before_action :set_tweet, only: [:edit, :update, :destroy, :post]
def index
@tweets = Tweet.all
end
def new
@tweet = Tweet.new
end
def create
if Tweet.save(tweet_params)
redirect_to tweets_url
else
redirect_to new_tweet_url
end
end
def edit
end
def update
respond_to do |format|
if @tweet.update(tweet_params)
format.html { redirect_to tweets_url, notice: 'Tweet was successfully updated.' }
# format.json { render :show, status: :ok, location: @tweet }
else
format.html { render :edit }
# format.json { render json: @tweet.errors, status: :unprocessable_entity }
end
end
end
def destroy
respond_to do |format|
format.any
if @tweet.destroy
redirect_to tweets_url
format.html { redirect_to tweets_url, notice: 'Tweet was successfully destroyed.' }
else
format.json { head :no_content }
end
end
end
def post
@client.update(@tweet)
redirect_to tweets_url
end
private
def tweet_params
params.require(:tweet).permit(:text)
end
def set_tweet
@tweet = Tweet.find(params[:id])
end
def set_client
@client = Twitter.configure do |config|
config.consumer_key = 'YOUR_CONSUMER_KEY'
config.consumer_secret = 'YOUR_CONSUMER_SECRET'
config.oauth_token = 'YOUR_OAUTH_TOKEN'
config.oauth_token_secret = 'YOUR_OAUTH_TOKEN_SECRET'
end
end
end
config/routes.rb
Rails.application.routes.draw do
resources :tweets, only: [:index, :new, :create, :edit, :update, :destroy] do
collection do
get 'post'
end
end
end
저장된 트윗 목록에서 게시
app/views/tweets/index.html.erb<div>
<table>
<thead>
<tr>
<th>ID</th>
<th>Text</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @tweets.each do |tweet| %>
<tr>
<td><%= tweet.id %></td>
<td><%= tweet.text %></td>
<% tweet_post_url = 'post?id=' + tweet.id.to_s %>
<td><%= link_to 'Tweet',tweet_post_url, data: { confirm: 'Are you sure?' } %></td>
<td><%= link_to 'Edit', edit_tweet_path(tweet) %></td>
<td><%= link_to 'Destroy', tweet, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
Reference
이 문제에 관하여(Rails로 만든 앱에서 트윗), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ShoutaWATANABE/items/c0f452befb8df201e112
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<div>
<table>
<thead>
<tr>
<th>ID</th>
<th>Text</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @tweets.each do |tweet| %>
<tr>
<td><%= tweet.id %></td>
<td><%= tweet.text %></td>
<% tweet_post_url = 'post?id=' + tweet.id.to_s %>
<td><%= link_to 'Tweet',tweet_post_url, data: { confirm: 'Are you sure?' } %></td>
<td><%= link_to 'Edit', edit_tweet_path(tweet) %></td>
<td><%= link_to 'Destroy', tweet, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
Reference
이 문제에 관하여(Rails로 만든 앱에서 트윗), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ShoutaWATANABE/items/c0f452befb8df201e112텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)