我有一个在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
。
任何人有任何线索。 这是快把我逼疯!
我有唯一的区别是我使用的JavaScript API相同的问题。
好像它是一个Facebook的错误,这是已经在这里报道: https://developers.facebook.com/bugs/136768399829531
是的,这是一个已知的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
我试图解决这个问题,这个问题似乎是发生于几乎每个人。 我使用的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;
}
}
}
为了解决这些问题,只是确保你通过你想分享的网址所代表的页头部分添加这些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