为什么我不能使用考拉发布给测试用户的Feed,但可以自己发布?

时间:2012-10-15 16:43:17

标签: ruby-on-rails facebook opengraph koala

我正在构建一个小型项目来测试将Facebook的Open Graph集成到我正在构建的Rails应用程序中,并且遇到了一个奇怪的问题。我可以将用户(在应用程序内)链接到我的Facebook帐户,并成功发布开放图表更新,但是如果我将应用程序断开连接到我的Facebook帐户,并将其链接到Facebook内生成的测试用户,则会收到以下错误:

u.facebook.put_connections("me", "goodgym:accept", mission: "http://4ztq.localtunnel.com/missions/1")
Koala::Facebook::APIError: HTTP 500: Response body: {"error":{"message":"An unexpected error has occurred. Please retry your request later.","type":"OAuthException","code":2}}
from /Users/idrysdale/.rvm/gems/ruby-1.9.3-p194@rails327/gems/koala-1.5.0/lib/koala/api.rb:56:in `api'
from /Users/idrysdale/.rvm/gems/ruby-1.9.3-p194@rails327/gems/koala-1.5.0/lib/koala/api/graph_api.rb:424:in `graph_call'
from /Users/idrysdale/.rvm/gems/ruby-1.9.3-p194@rails327/gems/koala-1.5.0/lib/koala/api/graph_api.rb:134:in `put_connections'
from (irb):3
from /Users/idrysdale/.rvm/gems/ruby-1.9.3-p194@rails327/gems/railties-3.2.7/lib/rails/commands/console.rb:47:in `start'
from /Users/idrysdale/.rvm/gems/ruby-1.9.3-p194@rails327/gems/railties-3.2.7/lib/rails/commands/console.rb:8:in `start'
from /Users/idrysdale/.rvm/gems/ruby-1.9.3-p194@rails327/gems/railties-3.2.7/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

我在user.rb模型中使用Facebook方法:

def facebook
    @facebook ||= Koala::Facebook::API.new(oauth_token('facebook'))
    block_given? ? yield(@facebook) : @facebook
    rescue Koala::Facebook::APIError => e
        logger.info e.to_s
        nil # or consider a custom null object
end

OmniAuth已被设置为:

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET'], scope: "email, publish_stream"
end

我无法理解为什么这可能适用于我的帐户,但不适用于测试用户(据我所知,所有其他设置都相同,我们都授权该应用程序。)

为了给你一些设置背景,我注册了一个新的Facebook应用程序(几乎按照http://railscasts.com/episodes/360-facebook-authentication?view=asciicast的说明)

然后我在Facebook中创建了一个角色来测试应用程序。

在我的Rails应用程序中,我使用OAuth连接到Facebook,成功生成令牌。

然后我使用Koala,使用Facebook的Open Graph发布。

有没有人想过为什么这可能与我的帐户有关,而不是测试角色?如果做不到这一点,任何关于如何更好地调试这个的指针将非常感激。那个意想不到的错误用处不大!

谢谢!

0 个答案:

没有答案