Intereting Posts
Расположение файла .apk Android, Drawable.createFromStream (is, srcname): что означает второй параметр? Предварительный просмотр камеры Android с использованием кода Grafika CameraCapture Как получить NEW width / height корневого макета в onConfigurationChanged? Неопределенный прогрессBar не отображается во время операции AsyncTask Android: как увеличить размер кучи во время выполнения? Разархивируйте ZIP-файл на SD-карте в приложении Android Как сделать Visualizer во время записи звука в android Обнаружение изменения вкладки ViewPager внутри фрагмента Android – Как решить, запускать ли службу в отдельном Процессе? Каковы преимущества языка программирования Kotlin? Добавление сервисов Google Play в Android Studio с использованием Gradle Флеш анимации CSS3 на Android 2.2 (webkit-transform: translate (..) scale (..) в то же время) Разница между Handler.post (Runnable r) и Activity.runOnUiThread (Runnable r) Не удалось найти com.google.android.gms: play-services: 3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1. 11 6.1.71 6.5.87

Загрузить фотографию в Facebook с Android Android SDK в Android

Я новичок в Android. Я ищу фотографию загрузки в facebook по авторизации, получая access_token. Как это сделать? Пожалуйста, дайте мне пример кода на Java.

Solutions Collecting From Web of "Загрузить фотографию в Facebook с Android Android SDK в Android"

Просто разместил здесь простой способ загрузить фотографию:

Android facebook опубликовать фотографию

Код:

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); 
 facebook.authorize(FbdemoActivity.this, new String[]{ "user_photos,publish_checkins,publish_actions,publish_stream"},new DialogListener() { @Override public void onComplete(Bundle values) { } @Override public void onFacebookError(FacebookError error) { } @Override public void onError(DialogError e) { } @Override public void onCancel() { } }); public void postImageonWall() { byte[] data = null; Bitmap bi = BitmapFactory.decodeFile("/sdcard/viewitems.png"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); data = baos.toByteArray(); Bundle params = new Bundle(); params.putString(Facebook.TOKEN, facebook.getAccessToken()); params.putString("method", "photos.upload"); params.putByteArray("picture", data); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); } public class SampleUploadListener extends BaseRequestListener { public void onComplete(final String response, final Object state) { try { // process the response here: (executed in background thread) Log.d("Facebook-Example", "Response: " + response.toString()); JSONObject json = Util.parseJson(response); final String src = json.getString("src"); // then post the processed result back to the UI thread // if we do not do this, an runtime exception will be generated // eg "CalledFromWrongThreadException: Only the original // thread that created a view hierarchy can touch its views." } catch (JSONException e) { Log.w("Facebook-Example", "JSON Error in response"); } catch (FacebookError e) { Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); } } @Override public void onFacebookError(FacebookError e, Object state) { // TODO Auto-generated method stub } } 

Вот весь код, попробуйте, он определенно сработает для вас, и это тоже работа для меня

Самый простой способ для вас – использовать существующий SDK, что-то вроде этого:
http://github.com/facebook/facebook-android-sdk/
http://code.google.com/p/fbconnect-android/
http://wiki.developers.facebook.com/index.php/User:Android

Более гибким способом является внедрение API самостоятельно, вот документы, которые будут полезны:
http://developers.facebook.com/docs/

Если вы хотите опубликовать фотографию с описанием, вы можете сделать это:

 public void publishPhoto(byte[] imgData, string message) { AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner (facebook); Bundle parameters = new Bundle (); parameters.putString (Facebook.TOKEN, facebook.getAccessToken()); parameters.putString ("message", message); parameters.putByteArray ("source", imgData); mAsyncRunner.Request ("me/photos", parameters, "POST", new RequestListener (), null); } 

Успешно я загрузил фотографии на стене facebook. Я использовал следующий код.

В своей основной деятельности выполните следующие действия:

 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub authenticatedFacebook.authorize(Facebooktest2Activity.this, new String[]{ "user_photos,publish_checkins,publish_actions,publish_stream"},new DialogListener() { @Override public void onComplete(Bundle values) { postImage(); Toast.makeText(getApplicationContext(), "Image Posted on Facebook.", Toast.LENGTH_SHORT).show(); } @Override public void onFacebookError(FacebookError error) { } @Override public void onError(DialogError e) { } @Override public void onCancel() { } }); } }); } public void postImage(){ byte[] data = null; Bitmap bi = BitmapFactory.decodeFile("/sdcard/img.jpg"); //Bitmap bi = BitmapFactory.decodeResource(getResources(), R.drawable.icon); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); data = baos.toByteArray(); Bundle params = new Bundle(); params.putString(Facebook.TOKEN, authenticatedFacebook.getAccessToken()); params.putString("method", "photos.upload"); params.putByteArray("picture", data); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(authenticatedFacebook); mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); } public class SampleUploadListener extends BaseKeyListener implements RequestListener { public void onComplete(final String response, final Object state) { try { // process the response here: (executed in background thread) Log.d("Facebook-Example", "Response: " + response.toString()); JSONObject json = Util.parseJson(response); final String src = json.getString("src"); // then post the processed result back to the UI thread // if we do not do this, an runtime exception will be generated // eg "CalledFromWrongThreadException: Only the original // thread that created a view hierarchy can touch its views." } catch (JSONException e) { Log.w("Facebook-Example", "JSON Error in response"); } catch (FacebookError e) { Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); } } public void onFacebookError(FacebookError e, Object state) { // TODO Auto-generated method stub } public Bitmap getInputType(Bitmap img) { // TODO Auto-generated method stub return img; } @Override public int getInputType() { // TODO Auto-generated method stub return 0; } @Override public void onIOException(IOException e, Object state) { // TODO Auto-generated method stub } @Override public void onFileNotFoundException(FileNotFoundException e, Object state) { // TODO Auto-generated method stub } @Override public void onMalformedURLException(MalformedURLException e, Object state) { // TODO Auto-generated method stub } } 

Конечно, этот код вам поможет.