Ich habe folgende Controller - recipes_controller.rb:814: unerwartetes Token auf 'verboten'
class RecipesController < ApplicationController
def list
@search_term = params[:looking_for] || 'chicken'
@courses = Recipe.for(@search_term)
end
end
Das folgende Modell: recipes.rb:
require 'httparty'
class Recipe
include HTTParty
default_options.update(verify: false)
base_uri 'http://food2fork.com/api/search'
default_params key: ENV['FOOD2FORK_KEY']
format :json
def self.for term
get("", query: { q: term})["recipes"]
end
end
& folgende view- Liste. html.erb:
<h1>Searching for - <%= @search_term %></h1>
<table border="1">
<tr>
<th>Image</th>
<th>Publisher</th>
<th>Title</th>
</tr>
<% @courses.each do |course| %>
<tr class=<%= cycle('even', 'odd') %>>
<td><%= image_tag(course["image_url"])%></td>
<td><%= course["publisher"] %></td>
<td><%= course["title"] %></td>
</tr>
<% end %>
</table>
Wenn ich http://localhost:3000/recipes/list tun, es gibt mir die folgenden Fehler:
814: unerwartetes Token auf 'verboten'
Anwendung Trace | Rahmenverfolgung | Voll Trace app/models/recipe.rb: 13: in for' app/controllers/recipes_controller.rb:4:in
Liste‘
die json ist aus folgendem Format:
{"count": 1, "recipes": [{"publisher": "Tasty Kitchen", "f2f_url": "http://food2fork.com/view/459b3d", "title": "End the Search Chocolate Chip Cookies", "source_url": "http://tastykitchen.com/recipes/desserts/end-the-search-chocolate-chip-cookiese280a6/", "recipe_id": "459b3d", "image_url": "http://static.food2fork.com/cookie2410x307a33e.jpg", "social_rank": 34.80777735743579, "publisher_url": "http://tastykitchen.com"}]}
Bitte lassen Sie mich wissen, was zu tun ist.
Haben Sie die URL erneut versucht erstellt, die die GET-Anforderung für die manuelle ist? Sieht für mich so aus, als würden Sie höchstwahrscheinlich eine 403 von der API bekommen, gegen die Sie Anfragen stellen. – photoionized
@photoionized: http://food2fork.com/api/search?key=a11111111111111&q=search Dies ist die URL, die den obigen JSON angibt. Aber wenn ich http://food2fork.com/api/search mache, bekomme ich 403 verboten. Was sollte in diesem Fall die Basis-URI sein? – user3591433
Ich habe keine Ahnung, habe diese API nie zuvor verwendet, aber für mich sieht es nicht so aus, als wäre es eine API-Basis-URL-Sache, sondern eher ein ungültiger Authentifizierungsschlüssel. – photoionized