Facebook SDK for Android gives wrong result for cover picture -
i'm developing app uses facebook user login purposes. process succesfully completed, when ask facebook user's information (with corresponding permissions), cover picture. response "facebook_non_json_result" , jfif image error code 200, instead of expected response of json object image's url, this:
[{response: responsecode: 200, graphobject: graphobject{graphobjectclass=graphobject, state={"facebook_non_json_result":"����\u0000\u0010jfif\u0000\u0001\u0002\u0000\u0000\u0001\u0000\u0001\u0000\u0000��\u0000\u0004*\u0000��\u0002\u001cicc_profile\u0000\u0001\u0001\u0000\u0000\u0002"}}, error: null, isfromcache:false}] i tested app's access token @ graph api explorer in facebook's developer page, , worked there. issue happens in device, have no clue of problem may be.
i changed app's permissions recently. however, app has been running new permissions until today, response changed jfif image. if give me indications or solutions problem, i'd grateful.
edit: here part of source code:
public void getimage(string image_id, int width, int height) { session session = session.getactivesession(); // request parameters bundle requestparams = new bundle(); requestparams.putstring("access_token", session.getaccesstoken()); requestparams.putboolean("redirect", false); requestparams.putint("width", width); requestparams.putint("height", height); // request url string requesturl = "/" + image_id + "/picture"; request request = new request(session, requesturl, requestparams, httpmethod.get, callback); response response = request.executeandwait(); if (response.geterror() == null) { setresponsejson(response.getgraphobject().getinnerjsonobject()); } }
here async class getting users facebook. thing need facebook user id.
private class setuserfacebookimage extends asynctask {
private progressdialog progressdialog; @override protected void onpreexecute() { progressdialog = new progressdialog(getactivity()); progressdialog.setmessage("retrieving facebook profile image..."); progressdialog.setindeterminate(true); progressdialog.setcancelable(false); progressdialog.show(); } @override protected bitmap doinbackground(string... params) { string urlstr = params[0]; bitmap img = null; httpclient client = new defaulthttpclient(); httpget request = new httpget(urlstr); httpresponse response; try { response = (httpresponse)client.execute(request); httpentity entity = response.getentity(); bufferedhttpentity bufferedentity = new bufferedhttpentity(entity); inputstream inputstream = bufferedentity.getcontent(); img = bitmapfactory.decodestream(inputstream); } catch (malformedurlexception e) { log.e(fragment_name, "invalid url"); e.printstacktrace(); } catch (ioexception e) { log.e(fragment_name, "unable parse facebook image"); e.printstacktrace(); } return img; } protected void onpostexecute(bitmap bitmap) { progressdialog.dismiss(); if(bitmap != null) { muserprofileimageview.setimagebitmap(bitmap); muser.setprofile_picture(mimageadapter.encodebitmap(bitmap)); } else muserprofileinterface.relayuservalidationerror( getresources().getstring(r.string.facebook_unable_to_get_user_profile)); } } you can call task this:
new setuserfacebookimage().execute(new string[] {getfacebookuserurl(muser.getface_book_id())});
Comments
Post a Comment