Facebook API异常“此链接无法发布。”

时间:2014-01-15 08:03:24

标签: android facebook facebook-graph-api

我正在facebook sdk 3.6使用android。我试图通过我的应用程序分享用户fb墙的链接。
我用过

Bundle postParam = new Bundle();
postParam.putString("link","http://mylink.com/image/09324 324.jpg"
postParam.putString("caption","my caption");
… … …

Request request = new Request(session, "me/feed", postParam, HttpMethod.POST, reqCallback);
            RequestAsyncTask reqTask = new RequestAsyncTask(request);
            reqTask.execute();

该链接包含空格字符 我可以通过%20替换空格字符,从浏览器访问该链接。但是当我使用link.replaceAll(" ","%20");执行相同操作时,我会得到Facebook api exception

ErrorMessage = This link could not be posted.
ErrorCode = 1500
ErrorType=  FacebookApiException

我认为这是url编码问题,但它既不会使用URLEncoder解决,也不会通过%20 replaceAll String对象的log cat替换空格。 /> 字符串中没有任何不可打印的字符。

注意:从bundle输出中复制并添加回log cat时,相同的链接正常工作。
更新:当我重新尝试从程序发布相同的链接(不是{{1}}已复制)时,它会成功发布。

问题是什么?如何解决?

3 个答案:

答案 0 :(得分:1)

有时Facebook会阻止其黑名单中的链接或域名。测试这种情况的一种方法是,如果您尝试使用相同的链接直接发布到Facebook上。

下面的链接可能会有所帮助,如果链接是安全的,他们建议您使用https://safeweb.norton.com,因此列入黑名单。

https://www.facebook.com/help/community/question/?id=541062392623556

答案 1 :(得分:0)

嗯,也许正在使用

link.replaceAll("\\s","");

\ s =任何空格字符(包括空格,制表符等)

你可以在这里看到:

Answer

希望有所帮助:)

答案 2 :(得分:0)

实际上我已经使用facebook shareDialog并向用户显示状态对话框,其中app可以填充linkpicture,描述and消息`(消息仅填充在webview上,即没有安装fb应用程序的设备)属性,用户可以编辑/填写状态并在时间轴上发布。

这是更好的方式发布在某人的墙上,因为用户可以看到他发布的内容。

很抱歉最近回答了我自己的问题,虽然我已经解决了。