1

我需要将位图连同消息和 url 链接一起发布到 Facebook 墙上。

根据https://developers.facebook.com/docs/reference/api/user/#photos,将照片添加到 Facebook 相册有 4 个参数:

source, message, place, no_story.

但是,我建议使用这样的代码:

Bitmap bm = ...;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(CompressFormat.JPEG, 100, baos);
final byte[] data = baos.toByteArray();
Bundle postParams = new Bundle();

postParams.putByteArray("photo", data);
postParams.putString("message", "My message here");
postParams.putString("link", "http://www.google.com");

Request request = new Request(session, "me/photos", postParams, HttpMethod.POST, callback);
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();

...并且此代码工作正常,只是它没有在墙上显示链接(“http://www.google.com”)。

我有三个问题:

  1. 为什么postParams.putByteArray("photo", data)有效?photo根据文档没有参数(见上文)。

  2. 如果无法使用link参数,SLComposeViewController 类(http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/SLComposeViewController_Class/Reference/Reference.html)如何工作?它有- (BOOL)addURL:(NSURL *)url方法。

  3. 如果可以使用link参数,为什么它不起作用?

4

1 回答 1

0

好的,我找到了问题 (2) 和 (3) 的答案。它看起来很简单:不要使用link,只需将其附加到message

postParams.putByteArray("photo", data);
postParams.putString("message", "My message here" + " " + "http://www.google.com");
//postParams.putString("link", "http://www.google.com");

至于我的问题(1),我仍然不清楚:为什么postParams.putByteArray("photo", data);工作正常而不是postParams.putByteArray("source", data);?文档对photo参数只字未提。

于 2012-11-15T10:59:09.897 回答