【Rails】Pinterest API를 통해 자신의 계정의 인덱스 목록을 가져오고 JSON의 샘플 코드를 되돌려줍니다
개시하다
Pinterst API를 사용했기 때문에 자신에게 메모를 남겼다.
이번에 대상인 기능은'자기 계좌 취득 핀 일람표'다.
공식 문서 여기 있습니다.
※ 사용 제한 등에 유의하십시오.
(저작권 소유자의 허가를 받은 경우를 제외하고) 이미지를 저장하거나 변경하지 않으며, Pinterst의 이미지를 인쇄할 수 없습니다.
비인용 데이터를 저장하지 마십시오
등 제한이 있다.
개발자를 위한 가이드라인
컨디션
OS: macOS Catalina 10.15.3
Ruby: 2.6.5
Rails: 6.0.2.1
전제 조건
rails new
등 최소한의 준비Access Token의 취득이쪽에서
1. net_http_module.rb
HTTP가 요구하는 부분을 분리합니다.
이번에는 그냥 GET 요구사항으로 아주 간단합니다.
app/controllers/concerns/net_http_module.rb
require 'active_support'
module NetHttpModule
extend ActiveSupport::Concern
require 'net/http'
def api_get(set_URL)
uri = URI.parse(set_URL)
response = Net::HTTP.get_response(uri)
end
end
2. pins_controller.rb
※ 이하
Pin
기종과 컨트롤러는 사전에 제작되었습니다.$ rails g model Pin pin_id:integer pin_url:string image_url:string width:integer height: integer
$ rails g controller api/v1/pins index
app/controllers/api/v1/pins_controller.rbclass Api::V1::PinsController < ApplicationController
include NetHttpModule
def index
# Pinterest APIのAccess Tokenはcredentialsで管理
url = "https://api.pinterest.com/v1/me/pins/?access_token=#{Rails.application.credentials.api_key[:pinterest]}&fields=id%2Cnote%2Curl%2Cimage"
# NetHttpModuleで定義したapi_getメソッドを使用
response = api_get(url)
# 429(リクエスト多すぎ)ならエラーメッセージを返す
if response.code == "429"
render json: { error: response.message }, status: response.code
elsif response.code == "200"
#privateで定義したメソッドを使用してDBにpin情報を保存
save_pins_and_cursor(response)
# Vue.jsに返すJSONを作成する(この辺は必要に応じて変更)
res = {
message: response.message,
pins: Pin.all.as_json,
}
render json: res, status: response.code
else
render json: { error: response.message }, status: response.code
end
end
private
def save_pins_and_cursor(response)
pins = JSON.parse(response.body)['data']
# 返ってきたデータの数だけpin情報をDBに保存する
pins.each do |pin|
Pin.create(
pin_id: pin['id'], # Pinterestが各ピンにつけている一意なID
pin_url: pin['url'], # Pinterestの該当ピンに飛ぶURL
image_url: pin['image']['original']['url'], # 画像が保存されているURL
width: pin['image']['original']['width'], # 画像の幅
height: pin['image']['original']['height'] # 画像の高さ
)
end
end
end
그리고 돌려받은 JSON을 앞에 두면 돼요![편리] 공식적으로 API 테스트 도구가 준비되어 있습니다.
링크에서는 API의 다양한 기능을 테스트할 수 있는 API Explorer에 액세스할 수 있습니다.
GUI에 사용해도 머리가 피곤할 때 부드러워요.편리
이상은!
끝말
끝까지 읽어주셔서 감사합니다
누군가에게 참고가 되었으면 좋겠네요
참조된 웹 사이트(지금까지 지원해 주셔서 감사합니다)
Reference
이 문제에 관하여(【Rails】Pinterest API를 통해 자신의 계정의 인덱스 목록을 가져오고 JSON의 샘플 코드를 되돌려줍니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/terufumi1122/items/a1eb814f5f7c783a6acd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)