我正在尝试使用Ruby Client对Webmaster Tool api进行查询。
params = {
start_date: "2015-01-14",
end_date: "2015-01-14"
}
AuthWebmastersService.query_search_analytics("http://www.ex.com/", params)
当我尝试提出请求时,我会ArgumentError (unknown keywords: start_date, end_date)
,为什么会发生这种情况?
Here是方法定义。
答案 0 :(得分:2)
它没有按预期工作,因为Ruby会将您的哈希转换为关键字参数,即
query_search_analytics("...", {start_date: "2015-01-14", end_date: "2015-01-14"})
变为:
query_search_analytics("...", start_date: "2015-01-14", end_date: "2015-01-14")
要获得预期结果,您必须附加一个空哈希:
query_search_analytics("http://www.ex.com/", params, {})
答案 1 :(得分:1)
此错误:
ArgumentError (unknown keywords: start_date, end_date)
告诉你,你指定了错误的关键字属性。
您的方法需要:
def query_search_analytics(site_url, search_analytics_query_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
当你像你写的那样打电话给你的方法时:
您需要做的是:
query_search_analytics("http://www.ex.com/", options: params)
答案 2 :(得分:0)
这是一个红宝石问题,如果是哈希值,则自动扩展最后一个参数。
两个解决方法:
params = Google::Apis::WebmastersV3::SearchAnalyticsQueryRequest.new(
start_date: "2015-01-14",
end_date: "2015-01-14"
)
AuthWebmastersService.query_search_analytics("http://www.ex.com/", params)
params = {
start_date: "2015-01-14",
end_date: "2015-01-14"
}
AuthWebmastersService.query_search_analytics("http://www.ex.com/", params, {})
答案 3 :(得分:-1)
因为它只接受关键字参数fields
,quota_user
,user_ip
,options
和start_date
,end_date
不在其中