寻找安卓 Facebook SDK 示例 [已关闭]

我在互联网上到处寻找,似乎找不到我想要的东西......

我只是试图找到一个网站,其中包含一些有关如何使用官方Facebook Android SDK的示例 http://github.com/facebook/facebook-android-sdk

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

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


答案 1

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

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

3.不支持二进制API参数(如上传图片)-即将推出...

因此,虽然如果您有图像文件的URL(该文件必须已经在互联网上),则可以将照片发布到墙上,但您不能使用此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更新。


答案 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

有一个很好的编程!