Facebook的墙后错误:OAuthException ::(#1500)您所提供的网址无效(Fa

2019-09-03 11:14发布

我有一个在Heroku上运行的基于web的新闻应用程式。 当用户发布到我的应用程序的新闻报道评论,我的应用程序转发到利用用户的Facebook墙上的评论fb_graph 。 一切正常,直到几个星期前。 没有任何理由,我可以解释我现在看到一些莫名其妙的行为。

现在,当用户提交评论的故事FB与API,响应OAuthException :: (#1500) The url you supplied is invalid 。 如果同一用户然后提交补充意见相同的故事的评论发布到用户的FB饲料就好了。

我已经使用FB图形API的探险家,确认本人有效的访问令牌,和我的应用程序不接受职位令牌所有者的FB饲料。

为了让事情更加莫名其妙,运行在本地主机上的所有职位的经历就好了我的发展FB应用开发我的web应用程序的时候。

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

任何人有任何线索。 这是快把我逼疯!

Answer 1:

我有唯一的区别是我使用的JavaScript API相同的问题。

好像它是一个Facebook的错误,这是已经在这里报道: https://developers.facebook.com/bugs/136768399829531



Answer 2:

是的,这是一个已知的bug和Facebook开发人员正在寻找到它,以及使他们声称,然而一些有趣的事情,我发现是:

帖子发到我的Facebook使用通过两种方法RestFB API ,首先,与网址,如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



Answer 3:

我试图解决这个问题,这个问题似乎是发生于几乎每个人。 我使用的PHP SDK。

我注意到的是,它总是在我第一次尝试到的链接后返回此错误。 在第二次尝试,它被张贴成功。

真的hackishly我再检查错误,重试张贴在墙上。

$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;
      }
   }
}


Answer 4:

为了解决这些问题,只是确保你通过你想分享的网址所代表的页头部分添加这些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" />

祝好运!



文章来源: Facebook wall post error: OAuthException :: (#1500) The url you supplied is invalid