2013-05-15 6 views
7

Ho un'app di notizie basata su Web che funziona su Heroku. Quando gli utenti pubblicano un commento su una notizia sulla mia app, la mia app inoltra il commento sulla bacheca di Facebook dell'utente utilizzando fb_graph. Tutto ha funzionato perfettamente fino a un paio di settimane fa. Per nessuna ragione posso spiegare che sto vedendo un comportamento sconcertante.Errore post muro Facebook: OAuthException :: (# 1500) L'URL che hai fornito non è valido

Ora, quando un utente invia un commento a una storia con cui l'API FB risponde, OAuthException :: (#1500) The url you supplied is invalid. Se, lo stesso utente invia quindi commenti aggiuntivi alla stessa storia, quei commenti vengono postati sul feed FB dell'utente correttamente.

Ho utilizzato l'esploratore API grafico FB per confermare di disporre di token di accesso validi e che la mia app accetta post sul feed FB del proprietario del token.

Per rendere le cose ancora più sconcertanti, quando eseguo la mia app Web in fase di sviluppo su localhost, tutti i post vengono visualizzati correttamente nell'app FB di sviluppo.

def post_to_facebook(story, post) 
    auth = Authentication.find_by_provider_and_user_id("facebook", current_user.id) 
    if auth 
    me = FbGraph::User.me(auth.token) 
    if me.permissions.include?(:publish_stream) 
     begin 
     me.feed!(
      :message => "#{best_name(current_user)} made the following post to NewsWick: #{post.contents}", 
      :name => story.title, 
      :link => "https://www.newswick.com/stories/"+story.id.to_s, 
      :description => "Story posted to the NewsWick world-wide news service" , 
      :picture => best_photo(story)[:photo_url] 
     ) 
     rescue => e 
     @msg = "Facebook posting error: "+ e.to_s 
     puts "Facebook feed posting error: #{e.message}" 
     end 
    else 
     @msg = "No longer authorized to post to Facebook." 
    end 
    end 
    return @msg 
end 

Un'ultima cosa da notare, l'unica cosa che ho cambiato w/r/t come la mia applicazione interagisce con FB nelle ultime due settimane è stato che ho accettato di FB July Breaking Changes.

Chiunque ha qualche indizio. Questo mi sta facendo impazzire !!!

risposta

3

Sto avendo lo stesso problema solo la differenza è che sto usando l'API di javascript.

Sembra come se fosse un insetto Facebook, che è già qui riportato: https://developers.facebook.com/bugs/136768399829531

+1

Sì. Ho trovato cinque segnalazioni di bug sul forum di supporto FB. Spero che FB faccia qualcosa a riguardo presto. https://developers.facebook.com/bugs/476666205677592, https://developers.facebook.com/bugs/126382447562342, https://developers.facebook.com/bugs/431421556904563, https: //developers.facebook. com/bug/460912230659216 e https://developers.facebook.com/bugs/136768399829531 –

+0

@chuckw Hai provato ciò che ho menzionato qui sotto? - Vedi la mia risposta bwlow: fammi sapere se hai bisogno di ulteriore aiuto, grazie –

+0

@babajidePrince , ho appena visto questo suggerimento. Ci proverò la mattina e riferirò. –

3

Sì questo è un bug conosciuto e gli sviluppatori di Facebook stanno cercando in esso, bene in modo essi sostengono, tuttavia qualcosa di interessante che ho scoperto è:

Inserisco sul mio Facebook utilizzando 2 metodi utilizzando RestFB API, in primo luogo, per i messaggi con URL ad esempio www.something.com e quelli senza URL, ho realizzato la scorsa notte che tutti i post senza URL funzionavano e quelli con URL no.

Così ho cambiato tutta la mia implementazione per inviare messaggi a Facebook senza utilizzare i parametri di collegamento per tutti i messaggi, con o senza collegamenti.

Con collegamento Parametro - tiri errore # 1500

FacebookType publishMessageResponse = resftFBclient.publish(FACEBOOK_PAGE_ID 
+"/feed", FacebookType.class, Parameter.with("message", "Hello StackOverFlow!"), 
Parameter.with("link", "message with a link , www.me.com")); 

In assenza di parametri di collegamento - questo funziona anche se messaggio contenuto URL/link

FacebookType publishMessageResponse = resftFBclient.publish(FACEBOOK_PAGE_ID. + 
"/feed",FacebookType.class,Parameter.with("message", "My message")); 

Questo funziona anche se il messaggio contiene URL/link e crea un link cliccabile su FB. Potrebbe essere che FB sta cercando di abbandonare l'implementazione del link e ci permette di capire che il primo funziona proprio come l'implementazione del link? Qual è la differenza comunque?

È brutale!

Acclamazioni

Babajide

+0

sì, questo sembra applicarsi a me. quando rimuovo il link funziona ... pigro –

+0

Funziona, ma perdiamo la bella formattazione dei link (che è comunque meglio di nessun post comunque). –

0

stavo cercando di risolvere questo problema questo problema che sembra essere che si verificano a quasi tutti. Sto usando l'SDK PHP.

Quello che ho notato è che ha sempre restituito questo errore per la prima volta che ho provato a postare il collegamento. In un secondo tentativo, è stato pubblicato con successo.

Davvero acutamente ho controllato un errore e ho cercato di postare sul muro.

$errorCount = 0; 

function postPicture($phrase) 
{ 
    try 
    { 
     $image = $_SESSION['photoLink']; 
     $facebook->setFileUploadSupport(true); 
     $response = $facebook->api(
     '/me/feed', 
     'post', 
     array(
      'message' => $phrase, 
      'picture' => 'http://mylink/pictures/facebook.png', 
      'link' => $image, 
      'caption' => 'My caption', 
      'description' => 'My description', 
      'type' => 'photo', 
      'name' => 'My name' 
     ) 
    ); 

     echo 'Success'; 
     } 

    } 
    catch (FacebookApiException $e) 
    { 
     // You really should check if this $error is #1500 before doing that. I didn't :) 
     if($errorCount < 2) 
     { 
     postPicture($phrase); 
     $errorCount++; 
     } 
     else 
     { 
      $e = str_replace('"', "", $e); 
      $e = str_replace("'", "", $e); 
      echo 'Error ' . $e; 
     } 
    } 
} 
0

per risolvere questi problemi solo assicurarsi di aggiungere questi tag di metadati og nella sezione head della pagina rappresentata dal url che si desidera condividere:

<meta property="og:type" content="article" /> //or any other type like blog, website etc.... 
<meta property="og:url" content="your article url here" /> 
<meta property="og:title" content="your article title here" /> 

Buona fortuna!