我在使用tumblr在rails应用程序中工作时遇到了一些问题。
这是代码片段导致400错误(意味着参数不正确)
@postcontent = @post.content.gsub(/<\/?[^>]*>/, "") post = Tumblr::Post.create(:email => 'valid@email', :password => 'mypassword', :type => 'video', :embed
=&GT; @ post.video_html,:caption =&gt; @postcontent)
我检查了API文档并检查了我正在呈现的代码和代码内容,但它仍然不想工作。
有趣的是它之前有效。它大约一个星期前工作。 tumblr有什么变化吗?
更新:我也在问题部分的github上发布了这个,并发现只有我的一个帖子,这个方法不起作用,我已经把它发送给了tumblr的好人。还有其他人有这个问题吗?
答案 0 :(得分:1)
我已经解决了这个问题......
对于任何在这里遇到困难的人来说,这是一个解决方案。 首先,宝石本身存在错误。有些代码需要修改。 看看这个版本的gem: http://github.com/mindreframer/tumblr其次,由于Tumblr允许使用html,我在控制器中调用sanitize来使我的内容格式化和清理。
class PostsController < ApplicationController
include ActionView::Helpers::TextHelper
include ActionView::Helpers::SanitizeHelper
def tumblrsubmit
tumblruser = Tumblr::User.new('valid@email', 'validpass', false)
Tumblr.blog = 'blogname'
@post = Post.find(params[:id])
begin
unless @post.movie_id.nil? #checks if there is a movie ID
@tags = @post.tags.join(', ')
post = Tumblr::Post.create(tumblruser,
:type => 'video',
:embed => @post.video_html , #fetches the stored embed code
:caption => "Read Full Article & More at: <a href='http://www.mywebsite.com/posts/#{@post.slug}'>#{@post.title}</a> <p> </p>#{ActionController::Base.helpers.sanitize(@post.content)}",
:slug => @post.slug,
:tags => @tags )
else
post = Tumblr::Post.create(:tumblruser, :type => 'regular', :title => @post.title, :body => ActionController::Base.helpers.sanitize(@post.content), :slug => @post.slug)
end
@post.update_attributes(:tumbler_id => "#{post}") #updates the database with the new tumblr post id
flash[:notice] = "Successfully sent <strong>#{@post.title}</strong> to tumblr. with post id = #{post}"
rescue
flash[:error] = "You are unable to post <strong>#{@post.title}</strong> to tumblr at this time"
end
redirect_to :back
end
end
我知道这看起来很多,但它确实起了作用。 希望这有助于其他任何人。
干杯, Matenia