Facebook - 在照片中标记用户,不断获取OAuthException - 未知错误?

时间:2014-08-10 18:07:25

标签: ruby-on-rails facebook facebook-graph-api

我正在使用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。

任何提示或解决方案?

由于

2 个答案:

答案 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)

我发现了两个可能的原因:

  1. Facebook不允许我们标记非朋友这一事实。由于我的令牌是Page的令牌,因此它没有朋友。

  2. 也许Page无法标记任何人。

  3. 即使用户“喜欢”了该页面,也不允许对其进行标记。

    我将令牌更改为用户的令牌,并且标记工作正常(只要它标记该用户的朋友)。

    我会留下这个问题,让任何人都可以添加正确答案。