做意图不再适用于在Facebook上发布图像?

问题描述:

我在一段时间后创建了一个应用程序,使用意图。现在它不工作。我学到了不允许通过意图发布文字和图片的地方。我只是想确认这是事实。做意图不再适用于在Facebook上发布图像?

如果这是真的,那么是唯一通过Facebook SDK发布的方法,还是有其他简单的方法来做到这一点?

+0

你必须使用facebook sdk https://developers.facebook.com/docs/sharing/android – Raghunandan

你可以做的就是利用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