0

我正在通过 API 给 Uservoice 文章写信。我使用以下代码编写:

    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) 有效,但更新无效。

4

1 回答 1

0

不要忘记以管理员(或所有者)身份登录。

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/上的“获取帐户所有者的访问令牌并发布响应”部分

于 2014-06-26T23:22:58.610 回答