做意图不再适用于在Facebook上发布图像?
问题描述:
我在一段时间后创建了一个应用程序,使用意图。现在它不工作。我学到了不允许通过意图发布文字和图片的地方。我只是想确认这是事实。做意图不再适用于在Facebook上发布图像?
如果这是真的,那么是唯一通过Facebook SDK发布的方法,还是有其他简单的方法来做到这一点?
答
你可以做的就是利用facebook图形API来代表用户使用访问令牌对Facebook服务器执行HTTP请求。
为了获得访问令牌,您需要实现Facebook登录,您需要熟悉oauth和oauth2协议来完成此操作。 一旦你有访问令牌,你可以将图像发布到/me/photos
端点的facebook账户。 将图像存储在位图中。并使用下面的代码。
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(
"https://graph.facebook.com/me/photos?access_token="
+ AccessTokens.fbaccesstoken);
MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
entity.addPart("source", new ByteArrayBody(data, "myImage.jpg"));
entity.addPart("message", new StringBody(caption.getText()
.toString()));
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost,localContext);
Facebook的SDK是建立在该API之上的SDK大大减少了在使用这些功能对我们开发的复杂性。
P.S:Facebook对任何试图实施oauth登录的应用程序进行审查。更多信息在https://developers.facebook.com/docs/facebook-login/review
你必须使用facebook sdk https://developers.facebook.com/docs/sharing/android – Raghunandan