Многократные записи в цикле с FbGraph дают: OAuthException:: (#1) Произошла ошибка при создании общего ресурса

У меня проблема с публикацией сообщений на странице, и я получаю только полезную ошибку:
OAuthException :: (#1) An error occured while creating the share

Первые 20 или около того постов работали замечательно, потом начались ошибки.
Есть ли у facebook ограничение на количество постов на странице (спам) или что-то еще?

Я могу воспроизвести форму rails c и я трижды проверил свой access_token и могу вручную отправлять сообщения из FB.
(Я использую page access_token не мой user один)

Я открыл вопрос о Githup от FbGraph, но nov, похоже, считает его проблемой FB.

Мой код:

    admin = Admin.first

    page = FbGraph::Page.new(admin.facebook_page_id)

    Story.where(:facebook_post_id => nil).all.each do |story|
      post = page.feed!(
        :link => 'http://www.example.com/stories/'+story.cached_slug,
        :access_token => admin.facebook_page_access_token
      )

      story.facebook_post_id = post.identifier
      story.live = true
      story.save

      sleep 1
    end

Backtrace:

FbGraph::InvalidRequest: OAuthException :: (#1) An error occured while creating the share
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fb_graph-2.6.4/lib/fb_graph/exception.rb:47:in `block in handle_httpclient_error'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fb_graph-2.6.4/lib/fb_graph/exception.rb:44:in `each'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fb_graph-2.6.4/lib/fb_graph/exception.rb:44:in `handle_httpclient_error'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fb_graph-2.6.4/lib/fb_graph/node.rb:142:in `handle_response'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fb_graph-2.6.4/lib/fb_graph/node.rb:55:in `post'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fb_graph-2.6.4/lib/fb_graph/connections/feed.rb:14:in `feed!'
    from (irb):9:in `block in irb_binding'
    from (irb):5:in `each'
    from (irb):5
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

Обновить:

Похоже, мой access_token был забанен на 24 часа.

Я только смог добавить еще 28 постов на страницу, прежде чем снова получить эту ошибку. Я пробовал с 10-секундным сном на этот раз, но все равно получил бан... Думаю, завтра попробую с 60-секундным сном..:(

1 ответ

Решение

Я не смог решить эту проблему, но я работал над этим.

Загружая 1 сообщение каждые 3 минуты, я смог получить 200-300 сообщений в день.

admin = Admin.first

page = FbGraph::Page.new(admin.facebook_page_id)

Story.where(:facebook_post_id => nil).all.each do |story|
  post = page.feed!(
    :link => 'http://www.example.com/stories/'+story.cached_slug,
    :access_token => admin.facebook_page_access_token
  )

  story.facebook_post_id = post.identifier
  story.live = true
  story.save

  sleep 180
end

Я надеюсь, что это помогает кому-то еще с этой проблемой.

Другие вопросы по тегам