我们必须将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
是否有其他人遇到过这个问题或者可以帮我弄清楚发生了什么?
答案 0 :(得分:1)
我发现问题是宝石本身。目前0.4.9版本的gem正在进行中,一些帖子路径并未反映新API。我已经分发了回购并将我的更改提交给作者进行审核。我需要的更改是gem中的favorites.rb和friendships.rb文件。以下是我对gem所做的四项更改:
<强> favorites.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
<强> friendships.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