我正在使用Koala gem在Rails中制作Facebook应用。
我的应用需要将图片上传到网页相册和标记提交的用户。
当我想要标记照片时,我一直收到此错误:
Koala::Facebook::ServerError in PhotosController#update
type: OAuthException, code: 1, message: An unknown error has occurred. [HTTP 500]
我的应用已设置publish_actions
权限,因此不是权限问题。
这是我的代码:
# token, photo_id, and user_id is confirmed to be not the problem
@graph = Koala::Facebook::API.new(token)
@graph.put_connections(photo_id, "tags",
{
tag_uid: user_id
}
)
如果我使用的是用户令牌,则照片会成功标记,但仍会转到该错误页面。如果使用Page's Token,则不会标记任何内容并转到Error。
任何提示或解决方案?
由于
答案 0 :(得分:0)
我上传照片的解决方案:
def post_to_facebook
conf = YAML.load_file File.join(Rails.root,'public','fb.yaml')
oauth = Koala::Facebook::OAuth.new(conf['app'], conf['key'], "http://yoursite.com/social_networks/callback_facebook?id=#{params[:id]}")
redirect_to oauth.url_for_oauth_code(:permissions => 'publish_stream,photo_upload,manage_pages')
end
def callback_facebook
news = News.find(params[:id])
conf = YAML.load_file File.join(Rails.root,'public','fb.yaml')
oauth = Koala::Facebook::OAuth.new(conf['app'], conf['key'], "http://yoursite.com/social_networks/callback_facebook?id=#{params[:id]}")
token = oauth.get_access_token(params[:code])
page = FbGraph::Page.new(page_id).fetch(:access_token => token, :fields => :access_token)
mes = "text_mes"
img_url = "http://yoursite.com#{news.news_image_url}"
page.photo!(:message => mes, :url => img_url)
redirect_to 'https://www.facebook.com/your_page'
end
其中page_id是将要上传照片的Facebook页面的ID
答案 1 :(得分:0)
我发现了两个可能的原因:
Facebook不允许我们标记非朋友这一事实。由于我的令牌是Page的令牌,因此它没有朋友。
也许Page无法标记任何人。
即使用户“喜欢”了该页面,也不允许对其进行标记。
我将令牌更改为用户的令牌,并且标记工作正常(只要它标记该用户的朋友)。
我会留下这个问题,让任何人都可以添加正确答案。