我正在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}}已复制)时,它会成功发布。
问题是什么?如何解决?
答案 0 :(得分:1)
有时Facebook会阻止其黑名单中的链接或域名。测试这种情况的一种方法是,如果您尝试使用相同的链接直接发布到Facebook上。
下面的链接可能会有所帮助,如果链接是安全的,他们建议您使用https://safeweb.norton.com,因此列入黑名单。
https://www.facebook.com/help/community/question/?id=541062392623556
答案 1 :(得分:0)
答案 2 :(得分:0)
实际上我已经使用facebook shareDialog并向用户显示状态对话框,其中app可以填充link
,picture,
描述and
消息`(消息仅填充在webview上,即没有安装fb应用程序的设备)属性,用户可以编辑/填写状态并在时间轴上发布。
这是更好的方式发布在某人的墙上,因为用户可以看到他发布的内容。
很抱歉最近回答了我自己的问题,虽然我已经解决了。