【发布时间】: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