Chciałbym wiedzieć, czy jest to możliwe, a jeśli tak, to w jaki sposób mogę przesłać surowe dane obrazu zamiast podawania adresu URL do obrazu w Internecie podczas publikowania Ściana Facebooka?Wysyłanie nieprzetworzonych danych obrazu zamiast adresu URL za pomocą pakietu Android Facebook SDK
Kod roboczego Obecnie mam wyniki w ten sposób:
http://1.bp.blogspot.com/-klSLFEmvHy0/TxpPMIay0xI/AAAAAAAAAKQ/iLZv-QtmThc/s1600/fbpost.JPG (Niestety nie mam wystarczająco dużo punktów, aby osadzić zdjęcia więc otworzyć URL proszę :-)
Który moreorless co chcę z podpisem, tytułem, linkami itp., ale moim głównym celem jest sprawienie, by wyświetlany obraz w kształcie serca był wydrukowany, który moja aplikacja generuje za każdym razem, gdy użytkownik decyduje się opublikować wyniki na Facebooku (zawartość jest dynamicznie generowana na obraz). Nie chcę zaimplementować przesyłania serwera stron trzecich, a następnie udostępnić tego adresu URL.
Widziałem wokół ludzi odnoszących się do kodu tak:
...
byte[] data = null;
Bitmap bi = BitmapFactory.decodeFile(imagePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
params.putByteArray(...
ale to wydaje się być na przesyłanie zdjęć bezpośrednio do albumu, który nie jest to, co chcę, albo.
Mój kod roboczego tak daleko jest:
private void loginAndPostToFacebook() {
mFacebook = new Facebook(FACEBOOK_APP_ID);
mFacebook.authorize(this, new String[] { "publish_stream" }, new DialogListener() {
@Override
public void onComplete(Bundle values) {
postOnWall();
}
@Override
public void onFacebookError(FacebookError error) {
L.t(getString(R.string.error_facebook_error) + ": " + error.getMessage());
}
@Override
public void onError(DialogError e) {
L.t(getString(R.string.error_facebook_error) + ": " + e.getMessage());
}
@Override
public void onCancel() {
}
});
}
public void postOnWall() {
Bundle params = new Bundle();
// Message
params.putString("message", "my msg");
// Name
params.putString("name", "app name");
// Caption
params.putString("caption", "caption");
// Description
params.putString("description", "description");
// Here's where I'd insert my dynamically generated image data...
params.putString("picture", "http://4.bp.blogspot.com/-VaNzm3xMOtk/TxpKzhxpdEI/AAAAAAAAAKI/08Kc5b4HW0Q/s1600/sexometer128x128neutral_icon.png");
// Link
params.putString("link", "http://www.stackoverflow.com");
try {
String response = mFacebook.request("me");
response = mFacebook.request("me/feed", params, "POST");
if (response == null || response.equals("") || response.equals("false")) {
L.t(getString(R.string.error_facebook_error) + ": blank response");
return;
} else if (response.toLowerCase().contains("error")) {
L.t(getString(R.string.error_facebook_error) + ": " + response);
return;
}
} catch(Exception e) {
L.t(getString(R.string.error_facebook_error) + ": " + e.getMessage());
return;
}
L.t(getString(R.string.success_posted_to_facebook));
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mFacebook != null) {
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
}