使用Android Android SDK在Facebook上传照片到Facebook

san*_*ana 11 android facebook photo facebook-java-api facebook-android-sdk

我是Android的新手.我正在通过授权搜索加载照片到facebook,获取access_token.这该怎么做?请给我一个Java示例代码.

trg*_*lia 15

刚刚发布在这里上传照片的简单方法:

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);
Run Code Online (Sandbox Code Playgroud)

  • params.putString("caption","description here"); 用于添加说明 (6认同)

小智 8

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
            // e.g. "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

    }
}
Run Code Online (Sandbox Code Playgroud)

这是整个代码尝试它肯定会为你工作,它也适合我


Fed*_*dor 4

最简单的方法是使用现有的 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/

  • 查看 FB api,我没有看到任何上传图像的方法。我只看到您可以传递图像 URL 作为参数,但不能传递图像数据本身。还是我忽略了什么? (2认同)