2013-05-15 48 views
7

我有一個基於Web的新聞應用程序在Heroku上運行。當用戶在我的應用程序上發佈評論時,我的應用程序使用fb_graph將評論轉發到用戶的Facebook牆上。一切都很完美,直到幾周前。我無法解釋我現在看到一些莫名其妙的行爲。Facebook牆貼錯誤:OAuthException ::(#1500)您提供的網址是無效的

現在,當用戶向故事提交評論時,FB API響應OAuthException :: (#1500) The url you supplied is invalid。如果同一個用戶向同一個故事提交額外的評論,那麼這些評論就會發布到用戶的FB源中。

我已經使用FB Graph API瀏覽器來確認我有有效的訪問令牌,並且我的應用程序確實接受了令牌所有者的FB提要的帖子。

爲了讓事情變得更加令人困惑,在本地主機上開發我的web應用程序時,所有的帖子都經過我的開發FB應用程序。

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 

最後一兩件事要注意,我已經改變了W/R/T在過去兩個星期我的應用程序FB如何交互的是,我接受了FB的July Breaking Changes的嘛。

任何人都有任何線索。這讓我瘋狂!

回答

3

我有同樣的問題,唯一的區別是我使用JavaScript API。

好像它是一個Facebook的錯誤,這是已經在這裏報道:https://developers.facebook.com/bugs/136768399829531

+1

是的。我在FB支持論壇上發現了五個錯誤報告。希望FB很快就能做到這一點。 https://developers.facebook.com/bugs/476666205677592,https://developers.facebook.com/bugs/126382447562342,https://developers.facebook.com/bugs/431421556904563,https://developers.facebook。 com/bugs/460912230659216和https://developers.facebook.com/bugs/136768399829531 –

+0

@chuckw你試過我在下面提到的嗎? - 看我的回覆bwlow:讓我知道你是否需要更多幫助,謝謝 –

+0

@babajidePrince ,只是看到了這個建議。我會在早上嘗試並報告。 –

3

是的,這是一個已知的bug和Facebook開發人員正在尋找到它,也因此他們聲稱,然而一些有趣的事情,我發現是:

帖子發到我的Facebook使用RestFB API通過兩種方法,一是用的URL如www.something.com和這些消息沒有網址,昨晚我意識到,如果沒有URL的所有帖子合作,並與URL的那些沒有。

所以我改變了我所有的工作將消息發送給Facebook沒有與鏈接參數使用的所有帖子,有或沒有聯繫。

隨着鏈路參數 - 拋出錯誤#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")); 

由於沒有鏈接參數 - 這個工程即使郵件包含URL /鏈接

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

這個工程即使郵件包含URL /鏈接,並在FB上創建可點擊的鏈接。 FB是否試圖放棄鏈接實現並讓我們弄清楚前者如同鏈接實現一樣工作?反正有什麼區別?

殘酷!

乾杯

Babajide

+0

是的,這似乎適用於我。當我刪除鏈接它的工作原理..crazy –

+0

它的工作原理,但我們失去了很好的鏈接格式(但仍然比沒有任何帖子好)。 –

0

我試圖解決這個問題,這個問題似乎是發生於幾乎每個人。 我正在使用PHP SDK。

我注意到它總是在我第一次嘗試發佈鏈接時返回這個錯誤。第二次嘗試,它成功發佈。

真的很危險我然後檢查了一個錯誤並重新嘗試貼到牆上。

$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

爲了解決這些問題,只是確保你通過你想分享的網址所代表的頁頭部分添加這些OG元數據標籤:

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

祝你好運!

相關問題