【问题标题】:Unable to get facebook Open Graph action approved using rails and the Koala gem无法使用 rails 和 Koala gem 获得批准的 facebook Open Graph 操作
【发布时间】:2015-03-14 02:10:45
【问题描述】:

提交申请后,我不断收到此消息

您的 Open Graph 操作未能在您提交的任何平台上发布。在重新提交之前,通过向测试用户发布操作来确保操作正常工作。

我的测试人员有测试用户、我自己的帐户、测试人员,而且它一直有效..

背景。 用户 has_many :authorization_providers,例如脸书、推特、gplus等 在 facebook 操作中,我正在获取 oauth_token

def facebook
  begin provider = authorization_providers.where(provider: 'facebook').first
    @facebook ||= Koala::Facebook::API.new(provider.oauth_token)
    block_given? ? yield(@facebook) : @facebook
  rescue Koala::Facebook::APIError => e #Koala::Facebook::APIError
    return nil
  end
  @facebook
end

在此操作中我获得了许可

def facebook_publish_actions
  if facebook
    begin
      permissions                 = facebook.get_connection("me", "permissions")
      publish_actions_permission  = permissions.find { |permission| permission["permission"] == "publish_actions" }
      publish_actions_permission_granted  = publish_actions_permission && publish_actions_permission["status"] == "granted"
    return publish_actions_permission_granted
  rescue
    return false
  end

  else
    return false
  end

end

实际发布是由 sidekiq worker 完成的,其中 'share_on_facebook' 和 'recording' 是来自数据库的记录

user.facebook.put_wall_post(share_on_facebook.message,
                                 {
                                 "name" => "#{recording.title}",
                                 "link" => "http://www.digiramp.com/users/#{recording.user.slug}/recordings/#{recording.id}",
                                 "caption" => "#{user.name} recomended a recording",
                                 "description" => "#{recording.comment}",
                                 "picture" => "#{recording.get_artwork}"
                               })

在 facebook 开发者页面上,我为“推荐歌曲”应用创建了一个故事

以上所有工作。 任何愿意帮助我的人都会授予所有必需的权限。

现在您可以前往http://digiramp.com 并在 facebook 上注册。 我会将您作为测试人员添加到我的项目中,您应该可以发帖了。

编辑:
我确实传递了 id:FbRecordingCommentWorker.perform_async(@share_on_facebook.id)

【问题讨论】:

    标签: ruby-on-rails facebook facebook-opengraph koala


    【解决方案1】:

    您能否发布代码行,您在哪里启动 sidekiq 工作?在 sidekiq 调用中使用对象可能无法按预期工作,因为对象存储在 Redis 中的哈希表示中。所以更好的想法是将对象参数替换为值。

    替换类似的东西

    User.delay.do_some_stuff(current_user, 20)
    

    User.delay.do_some_stuff(current_user.id, 20)
    

    并在实际方法中找到用户对象可能会解决问题。

    【讨论】:

    • 请在 digiramp.com 上注册并与我联系digiramp.com/users/max-groenlund。然后你可以向我提供你的 fb 用户名而不在这里发布然后我可以让你成为我的 fb 应用程序的测试员然后你可以发布
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2012-02-15
    相关资源
    最近更新 更多