【问题标题】:Do intents no longer work for posting images on Facebook?Intent 不再适用于在 Facebook 上发布图片了吗?
【发布时间】:2015-08-16 05:45:22
【问题描述】:

前段时间我使用 Intent 创建了一个应用。现在它不工作了。我在某处了解到,不允许通过意图发布文本和图像。我只是想确认是这样的。

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

【问题讨论】:

标签: java android facebook android-intent sdk


【解决方案1】:

您可以做的是利用 facebook graph api 使用访问令牌代表用户向 facebook 服务器发出 HTTP 请求。

为了获得实现 facebook 登录所需的访问令牌,您需要熟悉执行此操作的 oauth 和 oauth2 协议。 获得访问令牌后,您可以通过 /me/photosendpoint 将图像发布到 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

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2015-07-30
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多