2013-05-15 10 views
7

Mam internetową aplikację do wiadomości, która działa na Heroku. Gdy użytkownicy publikują komentarz do wiadomości w mojej aplikacji, moja aplikacja przesyła komentarz do ściany Facebooka użytkownika przy użyciu adresu fb_graph. Wszystko działało doskonale, aż kilka tygodni temu. Bez powodu, który mogę wyjaśnić, widzę teraz pewne kłopotliwe zachowanie.Błąd na ścianie Facebooka: OAuthException :: (# 1500) Podany adres URL jest nieprawidłowy

Teraz, gdy użytkownik przesyła komentarz do historii, interfejs API FB odpowiada, OAuthException :: (#1500) The url you supplied is invalid. Jeśli ten sam użytkownik przesyła dodatkowe komentarze do tej samej historii, to te komentarze są wysyłane do kanału FB użytkownika w porządku.

Użyłem eksploratora interfejsu FB Graph API, aby potwierdzić, że posiadam ważne tokeny dostępu oraz że moja aplikacja akceptuje posty do kanału FB tokena właściciela.

Aby jeszcze bardziej zaskoczyć, podczas uruchamiania mojej aplikacji internetowej w rozwoju na localhost wszystkie posty przechodzą dobrze do mojej aplikacji FB rozwoju.

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 

Ostatnią rzeczą, aby pamiętać, że jedyną rzeczą, że zmieniłem w/R/T, jak moja aplikacja współdziała z FB w ciągu ostatnich dwóch tygodni było to, że przyjęta na July Breaking Changes FB.

Każdy ma jakieś wskazówki. To doprowadza mnie do szału!

Odpowiedz

3

Mam ten sam problem, ale różnica polega na tym, że używam api javascript.

Wydaje się, że to błąd, facebook, który jest już zgłaszane tutaj: https://developers.facebook.com/bugs/136768399829531

+1

Tak. Znalazłem pięć raportów o błędach na forum pomocy technicznej FB. Mam nadzieję, że FB coś z tym wkrótce zrobi. https://developers.facebook.com/bugs/476666205677592, https://developers.facebook.com/bugs/126382447562342, https://developers.facebook.com/bugs/431421556904563, https: //developers.facebook. com/bugs/460912230659216 i https://developers.facebook.com/bugs/136768399829531 –

+0

@ chuckw Czy próbowałeś tego co wymieniłem poniżej? - Zobacz moją odpowiedź bwlow: Daj mi znać, jeśli potrzebujesz dodatkowej pomocy, dzięki –

+0

@babajidePrince , właśnie zobaczyłem tę sugestię. Spróbuję tego rano i zdam raport. –

3

Tak to jest znany błąd i deweloperzy Facebook szuka do niego, dobrze tak twierdzą jednak coś ciekawego się dowiedziałem to:

Publikuję na Facebooku za pomocą 2 metod, używając RestFB API, po pierwsze, dla wiadomości z adresami URL, np. Www.something.com i tymi bez adresów URL, zdałem sobie sprawę wczoraj wieczorem, że wszystkie posty bez adresu URL działały, a te z adresem URL nie.

Zmieniłem więc całą moją implementację, aby wysyłać wiadomości do Facebooka bez użycia parametrów łącza dla wszystkich wpisów, z lub bez linków.

z linkiem Parametr - wyrzuca Error # 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")); 

Bez parametrów łącza - to działa nawet jeśli wiadomość zawierała URL/link

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

To działa nawet jeśli wiadomość zawierała URL/link i tworzy klikalny link na FB. Czy to możliwe, że FB próbuje zrzucić implementację linku i pozwala nam zrozumieć, że ten pierwszy działa tak samo jak implementacja łącza? Jaka jest różnica?

To brutalne!

Cheers

Babajide

+0

tak to wydaje się dotyczyć mnie. kiedy usuwam link działa .. szalony –

+0

Działa, ale tracimy ładne formatowanie linków (co jest jeszcze lepsze niż żaden post w ogóle). –

0

starałem się rozwiązać ten problem ten problem, który wydaje się mieć miejsce niemal każdego. Używam pakietu PHP SDK.

Zauważyłem, że zawsze zwracał ten błąd po raz pierwszy próbowałem opublikować link. Po drugiej próbie została opublikowana z powodzeniem.

Naprawdę hackishly następnie sprawdziłem błąd i ponowiłem post na ścianie.

$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

Aby rozwiązać te problemy, po prostu upewnij się dodać tagi metadanych og w sekcji head strony reprezentowanej przez URL, który chcesz udostępnić:

<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" /> 

Powodzenia!

Powiązane problemy