0
看來我的帖子到達了主機,但是它的格式可能不正確?沒有作爲JSON進入?用HTTParty在Ruby中發佈JSON返回invalid_request
主機的結果呈現給我的錯誤代碼:INVALID_REQUEST 消息:驗證失敗的請求。
主機文件:
這意味着,自動排序沒有足夠的信息來 發生的順序。這幾乎總是會發生,因爲您尚未完全在您的自動訂購 部分填寫您的亞馬遜賬戶信息 部分。
我的錯誤結果包括以下內容:
{
"_type": "error",
"_request_id": "5623dcc59ca1bb1e76000a9f",
"code": "invalid_request",
"message": "Validation failed on the request.",
"data": {
"validator_errors": [
{
"path": "retailer_credentials.password",
"message": "'undefined' is not a permitted value for 'retailer_credentials.password' field."
},
{
"path": "retailer_credentials.email",
"message": "'undefined' is not a permitted value for 'retailer_credentials.email' field."
},
{
"path": "shipping_method",
"message": "'undefined' is not a permitted value for 'shipping_method' field."
},
{
"path": "is_gift",
"message": "'undefined' is not a permitted value for 'is_gift' field."
},
{
"path": "shipping_address.phone_number",
"message": "'undefined' is not a permitted value for 'shipping_address.phone_number' field."
},
{
"path": "shipping_address.country",
"message": "'undefined' is not a permitted value for 'shipping_address.country' field."
},
{
"path": "shipping_address.city",
"message": "'undefined' is not a permitted value for 'shipping_address.city' field."
},
{
"path": "shipping_address.zip_code",
"message": "'undefined' is not a permitted value for 'shipping_address.zip_code' field."
},
{
"path": "shipping_address.address_line1",
"message": "'undefined' is not a permitted value for 'shipping_address.address_line1' field."
},
{
"path": "shipping_address.last_name",
"message": "'undefined' is not a permitted value for 'shipping_address.last_name' field."
},
{
"path": "shipping_address.first_name",
"message": "'undefined' is not a permitted value for 'shipping_address.first_name' field."
},
{
"path": "retailer",
"message": "'undefined' is not a permitted value for 'retailer' field."
},
{
"path": "client_token",
"message": "'undefined' is not a permitted value for 'client_token' field."
},
{
"value": [],
"path": "products",
"message": "'' is not a permitted value for 'products' field."
}
]
},
"host": "zincapi-1",
"offers_urls": [],
"screenshot_urls": [],
"_created_at": "2015-10-18T17:54:13.416Z"
}
我的代碼是在索引視圖:
<table>
<thead>
<tr>
<th>IF name</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @ifs.each do |t| %>
<!-- Update Each cur_count -->
<%
require 'json'
require 'HTTParty'
zincUrl = 'https://api.zinc.io/v0/order'
@ZincResult=HTTParty.post(zincUrl,
:body => [{
:client_token => "XXXXXXXX",
:retailer => "amazon",
:products => [{"product_id" => ""+t.item+"", "quantity" => 1,
"seller_selection_criteria" => [
{
"condition_in" => ["New"],
"international" => false,
"max_shipping_days" => 10
}
]
}],
:max_price => 2000,
:shipping_address => {
"first_name" => "name",
"last_name" => "name",
"address_line1" => "address",
"address_line2" => "",
"zip_code" => "94133",
"city" => "San Francisco",
"state" => "CA",
"country" => "US",
"phone_number" => "number"
},
:is_gift => true,
:gift_message => "present",
:shipping_method => "cheapest",
:payment_method => {
"name_on_card" => "name",
"number" => "XXXXXXXX",
"security_code" => "XXX",
"expiration_month" => "XX",
"expiration_year" => "XXXX",
"use_gift" => false
},
:billing_address => {
"first_name" => "name",
"last_name" => "name",
"address_line1" => "address",
"address_line2" => "",
"zip_code" => "94133",
"city" => "San Francisco",
"state" => "CA",
"country" => "US",
"phone_number" => "XXXXXXXX"
},
:retailer_credentials => {
"email" => "email",
"password" => "password"
},
:webhooks => {
"order_placed" => "http://mywebsite.com/zinc/order_placed",
"order_failed" => "http://mywebsite.com/zinc/order_failed",
"tracking_obtained" => "http://mywebsite.com/zinc/tracking_obtained"
},
:client_notes => {
"our_internal_order_id" => "Order_"+t.item+"",
}
}].to_json,
:headers => { 'Content-Type' => 'application/json' })
%>
<%puts "end of Zinc if loop"%>
<%puts @ZincResult%>
<tr>
<td><%= t.name %> </td>
<td><%= t.item %></td>
<td><%= t.key %></td>
<td><%= t.count %></td>
<td><%= t.cur_count %></td>
<td><%= link_to 'show', if_path(t) %></td>
<td><%= link_to 'edit', edit_if_path(t.id) %></td>
<td><%= link_to 'delete', ifs_delete_path(:id =>t.id)%></td>
</tr>
<% end %>
</tbody>
</table>
爲什麼要在視圖中進行API調用?這是你應該放棄API調用的最後一個地方。 – max
你想在這裏做什麼? –
@ThomasRoss和Max我試圖調用上述正文的'https://api.zinc.io/v0/order'API。我可以用Python來做,但現在試圖讓它在Ruby上工作。我現在把它放在控制器中作爲一種方法。但是,在調用方法時,我仍然遇到上述錯誤。非常感謝您接受我的評價,我一直對此持反對態度。 – RF4