2010-07-24 83 views
15

我已經看遍了互聯網,似乎無法找到我在找什麼...尋找Android的Facebook的SDK的例子

我只是想找到一個網站的例子如何使用官方Facebook的android的SDK http://github.com/facebook/facebook-android-sdk

具體我想看看通知使用和簡單的照片上傳一些例子。但我會採取任何措施來幫助您獲得使用SDK的感覺。

如果有人知道任何例子,請分享謝謝!

+0

我假設你已經看過http://github.com/facebook/facebook-android-sdk/tree/master/examples/,它doesn沒有你想要的東西? – MatrixFrog 2010-07-24 01:53:46

+0

剛剛添加了一個從手機發布照片的答案。 – trgraglia 2011-02-10 10:00:59

+0

這些樣本沒有標籤,任何人都知道哪一張是用於照片分享? – Azurespot 2015-05-30 20:37:37

回答

15

幾周前我問了一個類似的問題,關於官方的Facebook Android SDK和張貼內容到牆上(Android/Java -- Post simple text to Facebook wall?)。這應該有助於你瞭解將文本發佈到牆上的感覺。我應該指出,你需要首先創建一個Fackbook應用並從Fackbook.com申請一個API密鑰(http://www.shoutmeloud.com/how-to-acquire-your-facebook-api-key.html)...如果它詢問你打算創建的應用的平臺,請選擇移動設備。

您可以修改我發佈的Stack Overflow鏈接(上圖)中的代碼以發佈照片。目前,雖然,根據對Facebook的Android SDK中的官方混帳頁面(在「已知問題」):

3.Binary API參數(比如上傳圖片)還不支持 - 即將推出。 ..

因此,儘管你可以,如果你有圖像文件的URL發佈照片到你的牆(該文件必須已經在互聯網上),您不能使用此SDK來發送二進制/來自Android設備的照片的字節數據(截至07/24/10)。至少,這是我從上面的陳述中收集到的。

替換示例代碼我張貼在其他堆棧溢出後的以下行(上面的鏈接):

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進行更新。

我希望有幫助。

+0

這絕對會有幫助!謝謝!我也好奇,如果你可能知道這個答案,SDk可能有一個「通知」類,也許我可以參考一個狀態欄通知,並得到它檢查說,如果消息> 1等等等等。對不起,我真的很新鮮。但這一切都非常有幫助 – brybam 2010-07-25 06:32:33

+1

多麼愚蠢。我想我可以將附件打包到另一個包中,並製作參數.putBundle(attachmentBundle);但是這導致了Util.encodeUrl(Bundle參數)中的NullPointerException,我推薦使用http://developer.android.com/reference/org/json/JSONObject.html代替。 – OneWorld 2010-12-07 16:57:22

+0

偉大的工作男孩....真的很棒.....非常感謝.... – Rocker 2011-09-14 18:34:06

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指向一些圖像中你/ SD卡/ ..或者是任何一個是:)
  • mainActivity是應用程序的主要活動
  • SampleUploadListenerAsyncFacebookRunner.RequestListener接口的implemetation

有一個很好的規劃!

+0

謝謝。即使應用程序已關閉,它仍會上傳嗎? – trgraglia 2011-02-10 09:26:17

2

剛剛張貼在這裏簡單的方式來上傳照片:

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); 
+0

什麼是SampleUploadListener()? – 2011-11-09 11:14:15

+0

Facebook SDK提供的示例的一部分。 – trgraglia 2011-11-09 11:15:37

+0

好的,謝謝。我知道了。但是,當我使用你的代碼時,簡單地說,Host是無法解析的。 – 2011-11-09 12:05:19