2013-05-15 32 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" /> 

祝你好运!

相关问题