Desidero consentire a un utente della mia app Web di essere in grado di pubblicare più oggetti sulla timeline da una pagina (pagina principale).L'invio di oggetti a Facebook tramite un grafico aperto non funziona, ma funziona dopo aver testato l'URL nel debugger di oggetti di Facebook?
Ho già memorizzato il token di accesso dell'utente.
Tag a pagina Sto cercando di inviare, l'url è PAGE_URL:
codice<meta property="fb:app_id" content="my_app_id" />
<meta property="og:type" content="my_namespace:my_object" />
<meta property="og:title" content="some string" />
<meta property="og:description" content="some other string" />
<meta property="og:image" content="some_image_url" />
<meta property="og:locale" content="en_US" />
<meta property="og:url" content="page_url" />
Rails a presentare l'url, innescato da 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
uscita
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\"}}"
La cosa veramente strana è che, dopo aver ottenuto questo Per esempio, se provo il page_url su Object Debugger, passa senza errori/avvisi, il og:type
è il tipo corretto e la nota 'website'
e quindi che esegue lo stesso codice Rails di cui sopra funzionerà bene.
Ho provato senza il tag og:url
e succede la stessa cosa.
UPDATE:
Come per la risposta di Igy, ho provato separa il processo oggetto raschiando dal processo di azione creazione. Quindi, prima che l'azione fosse inviata per un oggetto nuovo di zecca, ho eseguito uno update su un oggetto, con 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
uscita
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}"
La cosa strana è che il tipo è website
, e il titolo è l'URL della pagina. Ancora una volta, ho controllato sia l'HTML che il debugger di Facebook, e il tipo e il titolo sono entrambi corretti in quelli.
Grazie! Questo ha funzionato! Un tale sollievo, lo apprezzo davvero. – ben
L'esecuzione del debugger è stata prima riparata utilizzando javascript api-taa –
Isnt Unicorn un'alternativa? – Tony