【问题标题】:Looking for android Facebook SDK examples [closed]寻找 android Facebook SDK 示例 [关闭]
【发布时间】:2010-07-24 01:51:53
【问题描述】:

我在网上找遍了,似乎找不到我要找的东西......

我只是想找一个网站,上面有一些关于如何使用官方 facebook android SDK http://github.com/facebook/facebook-android-sdk 的示例

具体来说,我希望看到一些关于通知使用和简单照片上传的示例。但我会采取任何措施来帮助您了解使用 SDK。

如果有人知道任何例子,请分享非常感谢!

【问题讨论】:

标签: java android facebook sdk facebook-android-sdk


【解决方案1】:

几周前我问了一个类似的问题,关于官方 Facebook Android SDK 和将内容发布到墙上 (Android/Java -- Post simple text to Facebook wall?)。这应该可以帮助您了解将文本发布到墙上的感觉。我应该指出,尽管您需要先创建一个 Fackbook 应用程序并从 Fackbook.com (https://kunukd.com/) 申请一个 API 密钥...如果它询问您打算创建的应用程序的平台,请选择移动设备。

您也可以修改我发布(上图)的 Stack Overflow 链接中的代码以发布照片。目前,根据 Facebook Android SDK 的官方 git 页面(在“已知问题”下):

3.Binary API参数(如上传图片)尚未 支持——即将推出...

因此,如果您有图片文件的 URL(该文件必须已经在 Internet 上),您可以将照片发布到墙上,但您不能使用此 SDK 发送照片的二进制/字节数据来自 Android 设备(但......截至 2010 年 7 月 24 日)。至少,这是我从上面的陈述中收集到的。

替换我在另一个 Stack Overflow 帖子(上面的链接)中发布的示例代码的以下行:

Bundle parameters = new Bundle();
parameters.putString("message", "this is a test");// the message to post to the wall
facebookClient.dialog(this, "stream.publish", parameters, this);// "stream.publish" is an API call

有了这个

Bundle parameters = new Bundle();
parameters.putString("message", "Test Photo");
parameters.putString("attachment", "{\"name\":\"My Test Image\","
+"\"href\":\""+"http://www.google.com"+"\","
+"\"media\":[{\"type\":\"image\",\"src\":\""+"http://www.google.com/logos/mucha10-hp.jpg"+"\",\"href\":\""+"http://www.google.com"+"\"}]"
+"}");
facebookClient.dialog(this, "stream.publish", parameters, this);

您应该能够将照片发布到您的墙上(以及文本和链接)。

有关构建“附件”字符串的更多帮助,请访问此处:http://www.mobisoftinfotech.com/blog/android/845/

除此之外,如果您需要直接从设备将照片发布到相册,请考虑使用第三方软件包或等待官方 SDK 更新。

【讨论】:

  • 那肯定会有很大帮助!谢谢!我也很好奇你是否知道这个问题的答案,SDk 是否可能有一个“通知”类,也许我可以用状态栏通知来引用它,并让它检查说如果消息 > 1 等等等等。抱歉,我对此真的很陌生。但这一切真的很有帮助
  • 多么愚蠢。我想我可以将附件打包到另一个包中并制作 parameters.putBundle(attachmentBundle);但这会导致 Util.encodeUrl(Bundle parameters) 中出现 NullPointerException,我建议改用 developer.android.com/reference/org/json/JSONObject.html
  • 伟大的工作男孩......真的很棒......非常感谢......
【解决方案2】:

你可以这样做:

byte[] data = null;
try {
    ContentResolver cr = mainActivity.getContentResolver();
    InputStream fis = cr.openInputStream(localSnapshotUri);
    Bitmap bi = BitmapFactory.decodeStream(fis);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    data = baos.toByteArray();              
} catch (FileNotFoundException e) {
    e.printStackTrace();
}     

Bundle params = new Bundle(); 
params.putString("method", "photos.upload");          
params.putByteArray("picture", data);

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request(null, params, "POST", new SampleUploadListener());

这里使用的参数是:

  • localSnapshotUri 指向您 /sdcard/.. 中的某个图像或任何位置 :)
  • mainActivity 是应用的主要活动
  • SampleUploadListener AsyncFacebookRunner.RequestListener 接口的实现

祝你编程愉快!

【讨论】:

  • 谢谢。即使应用程序已关闭,这仍然会上传吗?
【解决方案3】:

刚刚在这里发布了上传照片的简单方法:

android facebook publish photo

代码:

byte[] data = null;

Bitmap bi = BitmapFactory.decodeFile(photoToPost);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();

Bundle params = new Bundle();
params.putString("method", "photos.upload");
params.putByteArray("picture", data);

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null);

【讨论】:

  • 什么是 SampleUploadListener() ?
  • Facebook SDK 提供的部分示例。
  • 好的,谢谢。我得到了它。但是,当我使用您的代码时,它很简单地说,主机未解决。
  • 最好提出一个新问题并显示您正在使用的代码。需要更多细节才能知道您在做什么。
【解决方案4】:

到目前为止,在登录后不使用对话框并使用新的 Facebook SDK 发布到用户墙上的最简单且有效的示例是: http://www.integratingstuff.com/2010/10/14/integrating-facebook-into-an-android-application/

顺便说一下,发布图片是通过以下方式完成的:

parameters.putString("picture", "http://www.google.com/logos/mucha10-hp.jpg"); 

【讨论】:

  • 它可以工作,但是对于期望字节数组而不是图像的 url 给出了异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2010-09-06
  • 2012-08-14
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多