0
在學校的一個項目我試圖用Bandsintown api來顯示用戶在我的網站上關注的藝術家即將舉行的音樂會。我能夠以我想要的方式使用api,但是在生產中我的heroku站點沒有顯示,也沒有收到任何錯誤,實際上我只是收到一個空數組。也許你需要Bandsintown的許可才能在heroku上使用他們的api?我試過聯繫他們,但還沒有聽到答覆。麻煩在軌道應用上使用api上的heroku
我的問題,爲什麼我能夠從Bandsintown獲得關於開發但不是生產的響應?新於一般的web開發,所以我還沒有碰到過這之前來..
這裏是我的代碼:
calendar_controller.rb
class CalendarController < ApplicationController
require 'uri'
def index
@user = current_user
@hash_version_array = []
@user.follows.each do |follow|
response = HTTParty.get("http://api.bandsintown.com/artists/#{URI.escape(follow.artist_name)}/events/search.json?api_version=2.0&app_id=#{app_id}&location=use_geoip")
@hash_version = JSON.parse(response.body)
@hash_version_array << @hash_version if @hash_version != []
end
@hash_version_array
end
end
日曆/ index.html.erb
在開發工作時從Bandsintown<h1><%= @user.name %>'s Calendar</h1>
<div>
<h4 class="inline"><%= link_to "Calendar" %></h4>
<h4 class="inline"><%= link_to "List" %></h4>
<h4 class="inline"><%= link_to "Map" %></h4>
</div>
<br>
<% @hash_version_array.each do |date| %>
<h3 class="artist_name"><%= date[0]["formatted_datetime"] %></h3>
<% date[0]["artists"].each do |info| %>
<h1 class="artist_name"><%= info["name"] %></h1>
<br>
<%= image_tag("#{info['thumb_url']}", class: 'artist_img') %>
<% end %>
<br>
<br>
<%= date[0]["venue"]["name"] %>
<br>
<%= date[0]["formatted_location"] %>, <%= date[0]["venue"]["country"] %>
<br>
Tickets <%= date[0]["ticket_status"].titleize %> <%= link_to("Buy", "#{date[0]['ticket_url']}") %>
<br>
<hr class="artists_hr">
<% end %>
響應:
From: /Users/jasonquaccia/Sites/code/projects/capstone/the-music-project/app/controllers/calendar_controller.rb @ line 15 CalendarController#index:
4: def index
5: @user = current_user
6: @hash_version_array = []
7:
8: @user.follows.each do |follow|
9: response = HTTParty.get("http://api.bandsintown.com/artists/#{URI.escape(follow.artist_name)}/events/search.json?api_version=2.0&app_id=el_proyecto_de_la_musica&location=use_geoip")
10: @hash_version = JSON.parse(response.body)
11:
12: @hash_version_array << @hash_version if @hash_version != []
13: end
14:
=> 15: binding.pry
16: @hash_version_array
17: end
[1] pry(#<CalendarController>)> @hash_version_array
=> [[{"id"=>10847723,
"title"=>"Metallica @ AT & T Park in San Francisco, CA",
"datetime"=>"2016-02-06T19:00:00",
"formatted_datetime"=>"Saturday, February 6, 2016 at 7:00PM",
"formatted_location"=>"San Francisco, CA",
"ticket_url"=>"http://www.bandsintown.com/event/10847723/buy_tickets?app_id=el_proyecto_de_la_musica&artist=Metallica&came_from=67",
"ticket_type"=>"Tickets",
"ticket_status"=>"available",
"on_sale_datetime"=>"2015-11-06T10:00:00",
"facebook_rsvp_url"=>"http://www.bandsintown.com/event/10847723?app_id=el_proyecto_de_la_musica&artist=Metallica&came_from=67",
"description"=>"CBS RADIO's The Night Before with Metallica and Cage the Elephant",
"artists"=>
[{"name"=>"Metallica",
"mbid"=>"65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab",
"image_url"=>"https://s3.amazonaws.com/bit-photos/large/4304043.jpeg",
"thumb_url"=>"https://s3.amazonaws.com/bit-photos/thumb/4304043.jpeg",
"facebook_tour_dates_url"=>"http://www.bandsintown.com/Metallica/facebookapp?came_from=67",
"facebook_page_url"=>nil,
"tracker_count"=>2341049,
"url"=>"Metallica",
"website"=>"http://metallica.com"}],
"venue"=>{"name"=>"AT & T Park", "city"=>"San Francisco", "region"=>"CA", "country"=>"United States", "latitude"=>37.7784059, "longitude"=>-122.3894401}}]]
pry的輸出是生產嗎?因爲它不是空的,如果這可能是部署問題,我們需要更多的細節,如果是這樣的話(這不是API問題,因爲它對我沒有任何問題) – matanco
道歉,我的意思是把開發不生產的撬輸出。做了一個編輯。我還能弄清楚問題所在,請參閱答案.. – jlquaccia