0

我们必须将 twitter_oauth gem 更新到 v.0.4.9 以支持 Twitter 的新 1.1 API。但是,收藏帖子和关注用户不起作用。尝试关注用户或收藏帖子时出现返回错误,如下所示:

{"errors"=>[{"message"=>"Sorry, that page does not exist", "code"=>34}]}

我有一个具有以下内容的 api_client 模型:

def follow(id)
  client.friend(id)
end

我的控制器代码:

def update
status = if params[:follow] 
  client.follow(params[:id])
elsif params[:follow] == 'false'
  client.follow(params[:id])
end

respond_to do |format|
  format.json do
    if status['screen_name'] == params[:screen_name]
      success = true
      notice = if params[:follow] == 'true'
        "You are now following #{status['screen_name']}"
      else
        "You are no longer following #{status['screen_name']}"
      end
    else
      success = false
      notice = 'Something went wrong. Try again in a couple of seconds.'
    end
    render :json => {:success => success, :message => notice}.to_json
  end
end
end

有没有其他人遇到过这个问题或者可以帮助我弄清楚发生了什么?

4

1 回答 1

1

我发现问题出在宝石本身。当前 0.4.9 版本的 gem 正在进行中,一些发布路径没有反映新的 API。我已经分叉了回购并将我的更改提交给作者以供审查。我需要的更改是 gem 中的 favorites.rb 和friendships.rb 文件。以下是我对 gem 所做的四项更改:

收藏夹.rb

def favorite(id)
-  post("/favorites/create/#{id}.json")
+  post("/favorites/create.json?id=#{id}")
end

def unfavorite(id)
-  post("/favorites/destroy/#{id}.json")
+  post("/favorites/destroy.json?id=#{id}")
end

友谊.rb

def friend(id)
-  post("/friendships/create/#{id}.json")
+  post("/friendships/create.json?user_id=#{id}&follow=true")
end

def unfriend(id)
-  post("/friendships/destroy/#{id}.json")
+  post("/friendships/destroy.json?user_id=#{id}")
end
于 2013-08-06T20:23:59.170 回答