2017-04-22 75 views
0

我只是试图寻找一个用户时,如果用户存在,甜的,如果没有,我想声明所以...为什么Spotify响应不允许我在收到错误时过去?

# 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

看看如何处理'在他们的[自述] RESTClient实现的errors' (https://github.com/rest-client/rest-client#response-callbacks-error-handling) – DiodonHystrix

+0

是的 - 我花了几个小时这样做,虽然我似乎接近一些,但没有结束了工作:( – code4fun

回答

0

为什么? RestClient的创建者设计了gem在资源不存在的情况下引发异常(aka返回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 
+0

好吧 - 我试着添加“救助虚假”,现在t他发生了:'spotify_user_lookup.rb:37:'

':未定义的方法'id'为false:FalseClass(NoMethodError)' – code4fun

+0

Nevermind!我改变我的if条件为'user_lookup(user_input_1)== false',这似乎是在做伎俩。感谢您的帮助!! – code4fun

+0

我更新了解决该问题的答案。 – spickermann

相关问题