我通过API为用户语音撰写文章。我使用以下代码编写:
data = {
:article =>
{
:question => question_name,
:answer_html => html,
:published => true
}
}
site = "http://myapp.uservoice.com"
puts "Remote site = #{site}"
consumer = OAuth::Consumer.new(APP_CONFIG["uservoice"]["key"],
APP_CONFIG["uservoice"]["secret"],
{:site => site})
accesstoken = OAuth::AccessToken.new(consumer,
user.helpdesk["uservoice"]["oauth_token"],
user.helpdesk["uservoice"]["oauth_token_secret"])
response = JSON.parse(accesstoken.post("/api/v1/articles.json", data).body)
flow.uservoice_id = response['article']['id']
flow.save!
puts "Save successful at #{response['article']['url']}"
这是有效的。但当我想进行更新时,即PUT
、
response = JSON.parse(accesstoken.put("/api/v1/articles/#{article_id}.json", data))
我有
{"errors"=>{"type"=>"unauthorized", "message"=>"Admin required: Not signed or not admin. Unverified; Signature verification failed; User not signed: oauthenticate failed"}}
作为回应。我也是一名管理员。写(POST)有效,但更新无效。
不要忘记以管理员(或所有者)身份登录。
accesstoken.login_as_owner do |owner|
posted_response = owner.post("/api/v1/articles/#{article_id}.json", data)
end
查看"获取帐户所有者的访问令牌并发布响应"部分https://developer.uservoice.com/docs/api/ruby-sdk/