我只是想查找一个用户,如果用户存在,那么很好,如果没有,我想说明......
# Install if you haven't already
require 'twilio-ruby'
require 'rspotify'
# Twilio Security Access
account_sid = 'enter_your_sid'
auth_token = 'enter_your_auth_token'
# Spotify User Lookup
def user_lookup(user_search)
spotify_user = RSpotify::User.find(user_search)
end
# Crafted text message using Twilio
def text(account_sid, auth_token, message)
client = Twilio::REST::Client.new account_sid, auth_token
client.messages.create(
from: '+twilio_number', # I guess you can use my number for testing
to: '+personal_number', # Feel free to enter your number to get the messages
body: message
)
end
# Ask who you should lookup on Spotify
puts "Who would you like to look up? "
user_input_1 = gets.chomp
# Make sure the user exists
if user_lookup(user_input_1).id != user_input_1 # Test with "zxz122"
msg = "Could not find that Spotify user!"
text(account_sid, auth_token, msg)
puts "Spotify user details send failure!"
else
user_exist = user_lookup(user_input_1)
user_profile_url = "https://open.spotify.com/user/#{user_input_1}"
msg = "Check out #{user_input_1} on Spotify: #{user_profile_url}"
text(account_sid, auth_token, msg)
puts "Spotify user details have been sent!"
end
我一直得到的回应是......
`return!': 404 Resource Not Found (RestClient::ResourceNotFound)
那么为什么它没有命中我的if语句并触发“找不到Spotify用户!”??
答案 0 :(得分:0)
为什么呢? RestClient
的创建者设计了gem,以便在资源不存在时引发异常(也就是返回404 not found
)。
要解决此问题,只需将方法更改为:
def user_lookup(user_search)
RSpotify::User.find(user_search) rescue false
end
将您的if ... else
块更改为:
if user_lookup(user_input_1)
user_profile_url = "https://open.spotify.com/user/#{user_input_1}"
msg = "Check out #{user_input_1} on Spotify: #{user_profile_url}"
text(account_sid, auth_token, msg)
puts "Spotify user details have been sent!"
else
msg = "Could not find that Spotify user!"
text(account_sid, auth_token, msg)
puts "Spotify user details send failure!"
end