2010-07-24 23 views
15

Szukałem w całym internecie i nie może wydawać się znaleźć to, czego szukam ...Szukasz android Facebooku przykładów SDK

Po prostu staram się znaleźć miejsce na kilka przykładów jak używać OFICJALNEGO facebooka android SDK http://github.com/facebook/facebook-android-sdk

Aby być konkretnym, chciałbym zobaczyć kilka przykładów użycia powiadomień i prostego przesyłania zdjęć. Ale wezmę wszystko, aby pomóc w poczuciu korzystania z SDK.

Jeśli ktokolwiek zna przykłady, podziel się z nami bardzo dziękuję!

+0

Jestem zakładając już spojrzał na http://github.com/facebook/facebook-android-sdk/tree/master/examples/ i nie robi nie masz tego, czego chcesz? – MatrixFrog

+0

Po prostu dodałem odpowiedź, publikując zdjęcie ze słuchawki. – trgraglia

+0

Te próbki nie są oznaczone, czy ktoś wie, który z nich można udostępnić? – Azurespot

Odpowiedz

15

Kilka tygodni temu zadałem podobne pytanie dotyczące oficjalnego zestawu SDK do systemu Android Android i zamieszczania treści na ścianie (Android/Java -- Post simple text to Facebook wall?). To powinno pomóc ci poczuć, jak to jest pisać tekst na ścianie. Powinienem jednak zaznaczyć, że musisz najpierw utworzyć aplikację Fackbook i złożyć wniosek o klucz API z Fackbook.com (http://www.shoutmeloud.com/how-to-acquire-your-facebook-api-key.html) ... jeśli zapyta o platformę aplikacji, którą chcesz utworzyć, wybierz komórkę.

Możesz zmodyfikować kod w łączu Stack Overflow, który napisałem (powyżej), aby opublikować zdjęcia. Obecnie jednak, według oficjalnej stronie na Facebooku git Android SDK (w sekcji „Znane problemy”)

3.Binary parametrów API (takie jak przesyłanie zdjęć) nie jest jeszcze obsługiwany - wkrótce. ..

Tak więc, mimo że możesz umieścić zdjęcie na ścianie, jeśli masz adres URL pliku obrazu (plik musi już być w Internecie), nie możesz użyć tego zestawu SDK do wysyłania plików binarnych/dane bajtowe zdjęcia z urządzenia z systemem Android (jeszcze ... od 07/24/10). Przynajmniej to wynika z powyższego stwierdzenia.

wymienić następujące linie kodu próbki napisałem w innym poście przepełnienie stosu (link powyżej):

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 

z tym

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

i powinieneś być w stanie opublikować fotografie Twoja ściana (jak również tekst i linki).

Aby uzyskać dodatkową pomoc dotyczącą struktury "załącznika", przejdź tutaj: http://www.mobisoftinfotech.com/blog/android/845/.

Oprócz tego warto rozważyć użycie pakietu innej firmy lub poczekać na zaktualizowanie oficjalnego zestawu SDK, jeśli chcesz opublikować zdjęcia w albumie bezpośrednio z urządzenia.

Mam nadzieję, że to pomaga.

+0

To zdecydowanie pomoże! Dzięki Ci! A także jestem ciekawy, czy możesz znać odpowiedź na to pytanie. Czy SDk może mieć klasę "Powiadomienia", o której może powinienem wspomnieć powiadomieniem o pasku stanu i poprosić o sprawdzenie, np. Czy wiadomości> 1 bla bla. Przepraszam, jestem naprawdę nowy w tym. Ale to wszystko było naprawdę pomocne – brybam

+1

Jak głupi. Myślałem, że mogę spakować załącznik do innego pakietu i utworzyć parametr.putBundle (attachmentBundle); Ale to prowadzi do NullPointerException w Util.encodeUrl (Parametry pakietu) Polecam zamiast tego użyć http://developer.android.com/reference/org/json/JSONObject.html. – OneWorld

+0

Świetna robota ... Naprawdę niesamowite ..... wielkie dzięki ... – Rocker

2

Można zrobić to w ten sposób:

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()); 

Parametry stosowane są tu:

  • localSnapshotUri co wskazuje na pewien obraz w tobie/sdcard/..lub tam, gdzie to jest :)
  • mainActivity że aplikacja jest główną działalnością
  • SampleUploadListener implementacja interfejsu z AsyncFacebookRunner.RequestListener

Miłego programowania!

+0

Dzięki. Czy nadal będzie to przesyłane, nawet jeśli aplikacja zostanie zamknięta? – trgraglia

2

Podobnie pisał tutaj prosty sposób przesłać zdjęcie:

android facebook publish photo

Kod:

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

co to jest SampleUploadListener()? –

+0

Część przykładu dostarczona przez pakiet SDK Facebooka. – trgraglia

+0

Ok Dzięki. Mam to. Ale kiedy używam twojego kodu, proste jest powiedzenie, że Host jest nierozwiązany. –

1

zdecydowanie najprostszy i przykładem pracy delegowania do muru użytkownika bez okna po zalogowaniu i przy użyciu nowego pakietu SDK Facebooka jest: http://www.integratingstuff.com/2010/10/14/integrating-facebook-into-an-android-application/

th e sposób wysyłania obrazów odbywa się:

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

Działa, ale daje wyjątek w oczekiwaniu na tablicę bajtów zamiast adresu URL obrazu. –

Powiązane problemy