Я хочу разрешить пользователю моего веб-приложения публиковать несколько объектов на своей временной шкале с одной страницы (main_page).
У меня уже есть токен доступа пользователя.
Теги на странице, которую я пытаюсь отправить, URL-адрес - page_url:
Код Rails для отправки URL-адреса, запускаемый с main_page:
begin
fb_post = RestClient.post 'https://graph.facebook.com/me/my_namespace:do', :access_token=>user.get_facebook_auth_token, :my_object=>"page_url"
rescue StandardError => e
p 'e.response is'
p e.response
end
Вывод
2011-11-02T02:42:14+00:00 app[web.1]: "e.response is"
2011-11-02T02:42:14+00:00 app[web.1]: "{\"error\":{\"message\":\"(#3502) Object at URL page_url has og:type of 'website'. The property 'my_object' requires an object of og:type 'my_namespace:my_object'.\",\"type\":\"OAuthException\"}}"
Действительно странно то, что после получения этой ошибки, если я тестирую page_url на Object Debugger , он проходит без каких-либо ошибок / предупреждений, og: type
является правильным типом и обратите внимание на 'website'
, а затем с тем же кодом Rails, что и выше, будет работать нормально .
Я пробовал без тега og: url
, и происходит то же самое.
ОБНОВЛЕНИЕ:
Согласно ответу Иги, я попытался отделить процесс очистки объекта от процесса создания действия. Итак, перед тем, как действие было отправлено для нового объекта, я выполнил обновление для объекта с scrape = true
.
begin
p 'doing fb_update'
fb_update = RestClient.post 'https://graph.facebook.com', :id=>page_url, :scrape => true
p 'fb_update is'
p fb_update
rescue StandardError => e
p 'e.response is'
p e.response
end
Вывод
2011-11-05T13:27:40+00:00 app[web.1]: "doing fb_update"
2011-11-05T13:27:50+00:00 app[web.1]: "fb_update is"
2011-11-05T13:27:50+00:00 app[web.1]: "{\"url\":\page_url,\"type\":\"website\",\"title\":\page_url,\"updated_time\":\"2011-11-05T13:27:50+0000\",\"id\":\id_here}"
Странно то, что типом является веб-сайт
, а заголовок - это URL-адрес страницы. Опять же, я проверил и HTML, и отладчик Facebook, и тип и заголовок в них верны.